实现一个本地资源的点击下载,只需要在a标签上添加一个download属性,网上很多教程都是针对这个属性给出的模板。但是download属性存在一个问题,就是要求下载资源是同源的。当在页面添加了一个第三方的链接,比如一个第三方的音频文件时,即便是添加了download属性,浏览器还是会自动跳转到播放页。
在csdn上找到了以下这段代码,测试了一下点击后需要一定的响应时间,但确实可以直接跳转下载而不是播放。
// JavaScript Document
function downloadMp3(filePath){
fetch(filePath).then(res => res.blob()).then(blob => {
const a = document.createElement('a');
document.body.appendChild(a);
a.style.display='none';
const url = window.URL.createObjectURL(blob);
a.href=url;
a.download='test.mp3';
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
});
}
downloadMp3("需要下载的链接");
很久不用jquery,本来就不熟,感觉快忘光了,在博客的js文件里找到了按钮动作添加的测试代码,顺便贴一下。
$('a.page-junior-item').on('mouseover',function(){
console.log(this.href);
}
);
本来想给站点的nhk音频添加上直接下载的按钮,找了一圈资料之后,一股作气,再而衰,三而竭。T_T