从代码触发下载-使用“另存为”而不是“保存”

时间:2019-05-07 07:43:47

标签: javascript file download

在我的页面上,我生成一个文本文件,必须将其保存到用户的计算机上。它工作正常,但我的问题是浏览器显示了“保存”文件对话框(Firefox和Chrome,Edge以自己的方式响应)。使用此对话框,将设置文件名,并且用户无法选择目标目录。

我想要的是与用户右键单击链接并选择“另存为”相同的对话框。我该如何实现?

var data = 'this is test data';
  var type = 'text/plain';
  var filename = 'test.txt'

  var file = new Blob([data], {
    type: type
  });
  if (window.navigator.msSaveOrOpenBlob) { // IE10+
    window.navigator.msSaveOrOpenBlob(file, filename);
  } else { // Others
    var a = document.createElement("a"),
      url = URL.createObjectURL(file);
    a.href = url;
    a.download = filename;
    document.body.appendChild(a);
    a.click();
    setTimeout(function() {
      document.body.removeChild(a);
      window.URL.revokeObjectURL(url);
    }, 0);
  }

您可以在这里看到一个小提琴:https://jsfiddle.net/k37zjxcq/2/

0 个答案:

没有答案