Blob createObjectURL 下载在 Firefox 中不起作用(但在调试时有效)

2024-01-29

我有一个奇怪的问题,下面的函数是我根据我在网上找到的有关在客户端中动态创建 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(使用前将#替换为@)

Blob createObjectURL 下载在 Firefox 中不起作用(但在调试时有效) 的相关文章

随机推荐