Chrome Build:最新的33+
Chrome扩展程序从当前查看的网站中提取某些网址,然后下载其中的一部分网址(通常是数百个文件).
预期行为:
文件将下载到默认的下载文件夹中,而不会询问他们必须保存的文件名的位置和位置.
问题:
如果用户在Chrome->设置 - >高级设置 - >下载中启用了"在下载前询问保存每个文件的位置"选项,那么当尝试同时下载100个文件时,Chrome会尝试打开100个SaveAs对话框,崩溃.
我尝试了什么:
使用以下代码通过模拟mousevent触发下载:
function saveAs(Url,filename){
var blob=new Blob([''], {type:'application/octet-stream'});
var url = webkitURL.createObjectURL(blob);
var a = document.createElementNS('http://www.w3.org/1999/xhtml','a');
a.href = Url;
a.download = filename;
var e = document.createEvent('MouseEvents');
e.initMouseEvent('click', false, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
webkitURL.revokeObjectURL(url);
}
Run Code Online (Sandbox Code Playgroud)