vue中使用axios下载文件,兼容IE11

一、设置axios返回值为blob

二、使用a标签的down属性下载,如果是IE浏览器,可以使用navigator.msSaveBlob进行下载

// data的数据类型是blob
downloadFiles (data) {
  if (!data) {
    return
  }
  const uA = window.navigator.userAgent
  const isIE = /msie\s|trident\/|edge\//i.test(uA) && !!('uniqueID' in document || 'documentMode' in document || ('ActiveXObject' in window) || 'MSInputMethodContext' in window)
  let url = window.URL.createObjectURL(new Blob([data]))
  let link = document.createElement('a')
  link.style.display = 'none'
  link.href = url
  link.setAttribute('download', '消费码.zip')

  document.body.appendChild(link)
  // 兼容IE
  if (isIE) {
    navigator.msSaveBlob(new Blob([data]), '消费码.zip')
  } else {
    link.click()
  }
}

 

posted @ 2018-12-12 17:31  DHeng  阅读(1194)  评论(0编辑  收藏  举报