以下脚本在浏览器中创建一个 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);
看起来您正在将网址用于下载之前对其进行处理。
关于javascript - 将从浏览器创建的文件保存到磁盘 - 无法在 FireFox 上使用 new File(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36914394/