我正在尝试创建一个扩展名,它可以同时下载多个文件。
为了实现这一点,我使用了chrome下载api,下面是代码(使用AngularJS):
var fileDownloadProperties = function(raw) {
return {
url: "https:" + raw.url,
filename: sharedDir + "/" + raw.name + "pdf",
saveAs: false
}
};
$scope.status = "";
filesToDownload.forEach(function (raw) {
chrome.downloads.download(fileDownloadProperties(raw));
});
问题是,当脚本运行时,它会忽略saveAs选项,然后继续打开saveAs对话框(名称和位置被正确传递,因为它们是对话框中的默认值,但可能会被覆盖)。
虽然它确实允许我下载,但它并不是很有用,因为我可以拥有超过几十个文件(下一个保存对话框只有在前一个文件完成下载后才会打开!)
有没有办法迫使chrome同时悄悄地下载文件?我尝试了其他解决方案(如下面的代码),但似乎没有一个方案可以避免打开对话框。
var a = document.createElement("a");
a.href = files[0];
a.download = files[0];
a.click();
任何帮助都将不胜感激,谢谢。
发布于 2018-04-25 15:07:36
您可以指示用户将Chrome设置设置为
Ask where to save each file before downloading
“另存为”打开/关闭。
https://lifehacker.com/make-chrome-ask-where-to-save-downloaded-files-by-chang-1790840372
发布于 2018-12-30 15:09:34
詹娜提供的答案是一个可以接受的解决办法,然而,强迫用户改变他们的偏好不是我认为是一个“被接受的解决方案”。对于这条线上的这个错误,存在一个问题。
我想唯一可能的方法有一个正确的修复是铬团队站起来,并为我们的开发人员解决这个问题。我建议对线程施加更大的压力,添加一条注释,说明为什么需要修复这个问题,以及它有多紧急。另外,也是最重要的一点是,确保您单击star,使问题成为明星,因为他们会更多地关注它。
https://stackoverflow.com/questions/41400018
复制相似问题