工作當(dāng)中對文件下載的記錄情竹,有個(gè)需求是要下載多個(gè)文件,發(fā)現(xiàn)使用a標(biāo)簽或window.open匀哄,即使是在for循環(huán)里也只能下載一個(gè)文件秦效,感覺是瀏覽器的限制,這點(diǎn)現(xiàn)在都沒有弄明白涎嚼。暫且先記錄下我是怎么實(shí)現(xiàn)多個(gè)文件下載的阱州,免得忘記。
1.單個(gè)文件下載:
?????? let a = document.createElement("a");
? ? ?? let evt = document.createEvent("HTMLEvents");
? ? ?? evt.initEvent("click", true, true); //initEvent 不加后兩個(gè)參數(shù)在FF下會報(bào)錯(cuò)? 事件類型法梯,是否冒泡苔货,是否阻止瀏覽器的默認(rèn)行為
? ? ?? a.download=“aaa”;
???? ? a.href = "downloadUrl";
? ? ?? a.click();
2.多個(gè)文件下載:
??????? 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);
? ? ? ? ? ? }
? ?? }