工作当中对文件下载的记录,有个需求是要下载多个文件,发现使用a标签或window.open,即使是在for循环里也只能下载一个文件,感觉是浏览器的限制,这点现在都没有弄明白。暂且先记录下我是怎么实现多个文件下载的,免得忘记。
1.单个文件下载:
let a = document.createElement("a");
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true); //initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
a.download=“aaa”;
a.href = "downloadUrl";
a.click();
2.多个文件下载:
for (let i in downloadUrls) {
if (downloadUrls[i] !== "") {
let adress = downloadFileApi + downloadUrls[i];
setTimeout(function() {
let frame = document.createElement("iframe");
frame.setAttribute("id", "iframe_" + i);
frame.src = adress;
document.body.appendChild(frame);
setTimeout(function() {
document.body.removeChild(frame);
}, 1000);
}, 100);
}
}