如何从Chrome扩展程序在Windows机器上打开“另存为”对话框?

4
在Windows操作系统上,能否使用Javascript和Html在Chrome扩展中打开“另存为”对话框?
我尝试了以下方法,但均无法实现:
1. 使用Chrome扩展的fileBrowserHandler - 它仅适用于Chrome OS。 2. 使用type = file的HTML5 input - 它只能打开“打开”对话框,而不能打开“另存为”对话框。 3. 使用download属性的锚标记(保存)- 它会将文件直接下载到浏览器的下载设置中。如果浏览器的“询问文件保存位置”设置已启用,则会打开“另存为”对话框。但是否有一种方式可以通过Chrome扩展以编程方式强制设置浏览器的设置呢?
如果还有其他解决方法,请告知。任何帮助都将不胜感激。 谢谢!
2个回答

5

如果想从Chrome扩展中强制出现保存对话框,可以使用Chrome扩展的下载API,并将saveAs选项标志设置为true。类似下面这样:

chrome.downloads.download({
    url: window.location.href + '/' + fileName,
    filename: fileName,
    saveAs: true
}, function (downloadId) {
    console.log(downloadId);
});

2
尝试使用FileSaver HTML5 polyfill,它可以让你从JavaScript中将任何内容保存到文件。请注意保留HTML标签。
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");

从他们的演示链接:https://eligrey.com/demos/FileSaver.js/ 来看,它似乎是下载文件而不是强制使用“另存为”对话框。它是否会强制使用“另存为”对话框? - Rach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接