我有一个奇怪的问题,下面的函数是我根据我在网上找到的关于在客户端中动态创建一个 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 测试的。
最佳答案
您可能过早删除了资源,请尝试延迟它
...
a.click();
setTimeout(function(){
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 100);
}
关于javascript - Blob createObjectURL 下载在 Firefox 中不起作用(但在调试时有效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30694453/