javascript - blob 不在 safari 中下载

标签 javascript safari

我正在尝试下载一个 csv 文件,但它似乎适用于除 safari 之外的所有浏览器?怎么会这样。在 safari 中它只是在浏览器中显示它?

这是我的代码:

  var saveData = (function () {
  var a = document.createElement("a");
  document.body.appendChild(a);
  a.style = "display: none";
  return function (data, fileName) {
   var blob = new Blob([data], {type: "text/csv;charset=utf-8"}),
     url = window.URL.createObjectURL(blob);
          a.href = url;
          a.download = fileName;
          a.click();
                    setTimeout(function(){

          window.URL.revokeObjectURL(url);  
      }, 100); 
      };
  }());

最佳答案

您在 Safari 不支持的 anchor 标记上使用 HTML 5 下载属性。

http://caniuse.com/#feat=download

最好链接到文件并像这样设置标题,以告诉代理下载而不是显示。

内容类型:文本/csv Content-Disposition:附件;文件名="whatever.csv"

关于javascript - blob 不在 safari 中下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32119421/

相关文章:

macos - 如何从命令行构建 Safari 扩展包?

css - 你如何摆脱 Safari/webkit 中 iframe 中的所有滚动条?

javascript - 在 Visual Studio 2010 中运行 javascript 函数时出现无效 ID 错误

javascript - 使用 firebase 的应用程序/无应用程序错误

javascript - Material Design lite 对话框在 Safari 桌面和手机中呈现

html - iOS - 固定 Bootstrap 导航栏内容是完全透明的

css - webkit 转换规则在 Safari 中根本不起作用

javascript - 另一个对象内的对象数组(Javascript)

javascript - 为什么 `{foo: 1}` 在控制台中计算为 `1`,而 `{foo: 1, bar: 2}` 导致错误?

Javascript 对象的属性已定义,但当我尝试使用它时返回未定义