Chrome Build:最新,33+
Chrome 扩展程序从当前查看的网站中提取某些 url,然后下载其中的一个子集(通常是数百个文件)。
预期行为:
文件被下载到默认的下载文件夹中,不会询问必须将文件保存在何处以及以什么文件名保存。
问题:
如果用户在 Chrome->设置->高级设置->下载中启用了“下载前询问每个文件的保存位置”选项,那么当尝试同时下载 100 个文件时,Chrome 会尝试打开 100 个SaveAs 对话框和崩溃。
我尝试了什么:
- 使用带有选项的 chrome.downloads.download(object options, function callback) 方法 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); }
最佳答案
启用“下载前询问每个文件的保存位置”时是不可能的(自 70.0.3538.77 起)。相应的 Chromium 错误是:
Bug 417112: chrome.downloads.download ignore saveAs
此外,在 chrome.downloads.downloads()
中设置文件名也不起作用。
关于javascript - 如何强制 Chrome 在下载 URL 时不打开另存为对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925222/