【发布时间】:2018-06-07 21:37:21
【问题描述】:
我有一个奇怪的问题,下面的函数是我根据我在网上找到的关于在客户端中动态创建 Blob 的内容创建的,其中包含一些二进制数据(作为数组传递)并能够下载那。这在 Chrome 中运行良好,但在 Firefox 中没有任何作用——除非我调试并逐步执行代码。是的,奇怪的是,如果我在函数内部创建一个断点并单步执行它,a.click() 将打开下载窗口!
function downloadFile(filename, data) {
var a = document.createElement('a');
a.style = "display: none";
var blob = new Blob(data, {type: "application/octet-stream"});
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}
谁能帮帮我?这是使用 Firefox 38.0.5 测试的。
【问题讨论】:
-
对于 Firefox 需要调用
document.body.appendChild(a);有点奇怪。 -
真的需要revokeObjectURL吗?
标签: javascript firefox download blob