如何仅在下载对象 URL 后才撤销该对象 URL?

2023-11-21

我使用以下代码在 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的点击事件监听器?有没有办法让点击事件侦听器运行after默认操作?


a.click()在 DOM 元素上模拟单击该元素,而不是传播单击事件,因此它会直接发送到浏览器。我相信使用计时器将 URL 对象的撤销移至另一个事件周期会更安全一些:

setTimeout(function() {
 URL.revokeObjectURL(a.href);
}, 0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在下载对象 URL 后才撤销该对象 URL? 的相关文章

随机推荐