javascript - 我如何不使用右键单击而是使用页面上的按钮从浏览器“另存为”视频
问题描述
你好朋友我目前正在做一个项目,我面临一个问题。我有 javascript 代码,我从其服务器获取视频链接并且它可以工作。但是当我想下载视频时,我点击了下载按钮,它给我带来了一个新标签,视频开始播放。然后我右键单击视频,然后单击“另存为”以保存视频。会有什么办法。如果我点击下载按钮下载应该从那里开始。一件事是按钮后面有一个来自服务器的链接。希望我能解释我的问题。
// url
var vid_url = $("#url").val();
if(isUrlValid(vid_url)){
$('#videodownload').button('loading');
$(".result").hide();
$("#bar").css("display","block");
$("#hd").html('');
$("#sd").html('');
//ajax call
$.ajax({
type:"POST",
dataType:'json',
url:'F.php',
data:{url:vid_url},
var img_link = $("#url").val().split("/")[5];
$("#title").html(data.title);
// video source
$('#video').attr('src', data.sd_download_url);
$("#video")[0].load();
$("#source").html('<a id="vid_url" href="'+vid_url+'">'+vid_url+'</a>');
# download link
$("#sd").html('<a href="'+data.sd_download_url+'" class="btn btn-block btn-color" download="sd.mp4">Download SD</a>');
// HD video quality download link
if(data.hd_download_url){
$("#hd").html('<a href="'+data.hd_download_url+'" class="btn btn-block btn-color" download="hd.mp4">Download HD</a>');
}
// button reset
$('#videodownload').button('reset');
//show result div
$(".result").show();
}
}
});
//Validations for url
function isUrlValid(url) {
return /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url);
}
解决方案
推荐阅读
- javascript - 当我以编程方式输入值时,HTML 输入元素无法识别值
- javascript - Autodesk Forge Viewer 的多个实例
- matlab - Vim 8 - Matlab/Octave:两个连续的注释字符取消注释突出显示
- java - 需要为字符串文字定义一个常量[SonarQube Smell]
- r - 隐马尔可夫参数
- java - 在 db 中查找具有 Java 中 OffsetDateTime 范围的记录
- typescript - 具有函数参数的对象的索引签名
- c# - Windows Server 2016 上的 IIS 10 未运行我的 ASP.NET MVC 网站
- javascript - 使用 Angular 装饰器访问动态组件
- python - ImportError:无法导入名称“IncompleteRead”-Windows