我有一个奇怪的问题,下面的函数是我根据我在网上找到的有关在客户端中动态创建 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)