小编Qut*_*its的帖子

下载URL时如何强制Chrome不打开SaveAs对话框?

Chrome Build:最新的33+

Chrome扩展程序从当前查看的网站中提取某些网址,然后下载其中的一部分网址(通常是数百个文件).

预期行为:

文件将下载到默认的下载文件夹中,而不会询问他们必须保存的文件名的位置和位置.

问题:

如果用户在Chrome->设置 - >高级设置 - >下载中启用了"在下载前询问保存每个文件的位置"选项,那么当尝试同时下载100个文件时,Chrome会尝试打开100个SaveAs对话框,崩溃.

我尝试了什么:

  • 使用chrome.downloads.download(对象选项,函数回调)方法和选项saveAs:false
  • 使用以下代码通过模拟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)

javascript google-chrome download google-chrome-extension

8
推荐指数
1
解决办法
4111
查看次数