js 文件下载,多个文件下载,pdf下载

网上搜到的答案基本上都是下面这种

function loadFilesWin(urlsArray) {
  for (let i = 0; i < urlsArray.length; i++){
    let aDom = document.createElement('a')//创建标签
    let evt = document.createEvent('HTMLEvents')//创建事件
    evt.initEvent('click', false, false)//初始化事件,绑定点击事件,不冒泡,不阻止浏览器默认行为
    aDom.download = urlsArray[i]
    aDom.target="_blank";
    aDom.href = "http://"+encodeURI(urlsArray[i]);//对地址进行编码
    aDom.dispatchEvent(evt)//触发事件
    aDom.click()
  }
}

使用时需要注意的问题:

  1、下载的地址必须要加http://  /https://  ,

  2、需要下载多个数据时(单个下载不需要)  必须要加aDom.target="_blank";  就是把a标签的跳转属性 改成新开窗口 如果不加这个属性 下载会只下载第一个,

原因是:href 这个属性会刷新浏览器,所以当下载第一个文件时 浏览会刷新造成剩下的代码无法执行。所以for循环只会执行一次