javascript - 将从浏览器创建的文件保存到磁盘 - 无法在 FireFox 上使用 new File()

标签 javascript firefox

以下脚本在浏览器中创建一个 json 文件并自动将其保存到磁盘。

它在 Chrome 50.0.2661.87 m 上工作正常,但在 FF 47.0a2不起作用(尽管没有抛出错误)。

问题似乎与以下内容相关(就好像您将其注释掉一样):

window.URL.revokeObjectURL(link.href);

FF 上出现这种行为的原因是什么?我是否应该完全省略 window.URL.revokeObjectURL() ;

注意:它应该适用于最新的浏览器 Chrome 和 FireFox。

var saveDataToFile = function(data, fileName, properties) {
  window.URL = window.URL || window.webkitURL;
  var file = new File(data, fileName, properties),
    link = document.createElement('a');
  link.href = window.URL.createObjectURL(file);
  link.download = fileName;
  document.body.appendChild(link);
  link.click();
  window.URL.revokeObjectURL(link.href);// possible problem here
  document.body.removeChild(link)
};

var fileName = 'test.json',
  properties = {
    type: 'octet/stream'
  },
  data = [JSON.stringify({
    test: 'hello'
  })];
saveDataToFile(data, fileName, properties);

最佳答案

删除此行

window.URL.revokeObjectURL(link.href);

看起来您正在将网址用于下载之前对其进行处理。

测试:https://jsfiddle.net/cLvf7yny/

关于javascript - 将从浏览器创建的文件保存到磁盘 - 无法在 FireFox 上使用 new File(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36914394/

相关文章:

javascript - 控制台输出在 Firefox 29.0.x 上的 Firebug 1.12.x 中不可见

html - 那么这些浏览器中的哪一个正确解释了 CSS 盒模型、Firefox、IE 或 Chrome

css - 字体系列 : inherit; specific to mozilla firefox

javascript - 停止 javascript 函数

javascript - 具有模糊深色背景的纯 CSS 灯箱

javascript - 离开选项卡并返回时如何维持过滤结果?

javascript - AngularJS - 触发 $watch/$observe 监听器

php - 使用 FormData 对象,服务器收到一个空的 POST

css - 字体变体 : small-caps; shows different font sizes using Chrome or Firefox

php - 交叉兼容 CSS(定位)?