FileSaver.js 带有对话框

FileSaver.js with a dialog

我正在使用 FileSaver.js 使用下面的代码下载文件。此文件会自动下载到默认文件夹(在 Chrome 中测试),但我需要显示一个 window 对话框,上面写着类似 "Save as file..." 的内容。谢谢!

var blob = new Blob([data], {type: "application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet"});
saveAs(blob, "file.xlsx");

您所说的这个对话框是特定于浏览器设置的。在 Google Chrome 中的意思例如在 Settings/Advanced/Downloads 部分你有一个设置:

Ask where to save each file before downloading 你可以设置 true/false.

如果您禁用此设置,它会始终询问您并显示 SaveAs 对话框。

希望对您有所帮助。

I need to show a window dialog that says something like "Save as file...". Thanks!

为了从整体上解决您的问题,我建议使用 prompt method,它将通过对话框提示用户保存文件名。

此外,还有许多用于自定义对话框的库以及 AlertifyJS or SweetAlert2 which I used in my Flat Design Character Maker

这是 prompt method.

的一个简单示例

saveFile.onclick = function() {
  var filename = prompt("Define your file name.");
  if (filename) {
    alert("File saved!");
  } else {
    alert("Save canceled!");
  }
}
<button id="saveFile">Save file</button>