9

我目前有这个代码:

function download(filename, text) {
        var pom = document.createElement('a');
        pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
        pom.setAttribute('download', filename);
        pom.click();
}

download('test.html', string);

string包含许多写在 .html 文件中的 html 代码。
上面的代码运行良好:单击按钮时,浏览器 (chrome) 会自动下载一个包含字符串内容的 html 文件。

现在,我想要做的是,Chrome 不会自动下载文件,而是应该打开一个“另存为”对话框并询问用户文件的位置和名称,然后将其下载到该位置。

一个快速简单的答复将不胜感激。

4

2 回答 2

5

我的浏览器被设置为自动下载默认位置的所有文件,这就是为什么不仅这个文件而且我浏览器中的所有其他文件都直接下载而没有保存提示对话框。将浏览器中的设置更改为“始终询问下载位置”有效。

于 2015-05-21T07:56:06.757 回答
2

The only way to do this is to set the header of the file on the server, like so:

<FilesMatch "\.(?i:pdf)$">
   ForceType application/octet-stream
   Header set Content-Disposition attachment
</FilesMatch>

The download attribute does not allow you to change the filename or filetype any more as it is an obvious security risk.

What you are trying to do it replicate the right-click - save-as dialogue but I'm afraid that is not possible at this time.

于 2013-10-30T12:16:56.720 回答