原生js单个文件下载与多个文件下载

工作当中对文件下载的记录,有个需求是要下载多个文件,发现使用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);

            }

     }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。