我正在使用以下代码在 JavaScript 中保存文件:
var a = document.createElement('a');
a.href = URL.createObjectURL(new Blob(['SOME DATA']));
a.download = 'some.dat';
a.click();
我想在文件下载后撤销 URL(使用 URL.revokeObjectURL)。什么时候这样做是安全的?
我可以在调用 a.click()
后立即撤销它吗(这似乎有效,但我不确定它是否安全)?在a
的点击事件监听器中?有没有办法让点击事件监听器在默认操作之后运行?
最佳答案
DOM 元素上的
a.click()
模拟元素上的点击,而不是传播点击事件,因此它直接发送到浏览器。我相信使用计时器将 URL 对象的撤销移动到另一个事件周期会更安全一些:
setTimeout(function() {
URL.revokeObjectURL(a.href);
}, 0);
关于javascript - 如何仅在下载后撤销对象 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240551/