IE11 下载时报错 “Unhandled promise rejection TypeError: 对象不支持此操作”

原代码(网上复制的下载方法)

  const res = ...
  const blob = new Blob(...)
  const downloadElement = document.createElement('a') // 新建一个DOM节点
  const href = window.URL.createObjectURL(blob) // 创建下载的链接
  downloadElement.href = href
  downloadElement.download = filename // 下载后文件名
  document.body.appendChild(downloadElement) // 将新增的节点挂载到页面上
  downloadElement.click() // 点击下载
  document.body.removeChild(downloadElement) // 下载完成移除元素
  window.URL.revokeObjectURL(href)

由于 IE11 不支持第 8 行的 .click(),报错 “Unhandled promise rejection TypeError: 对象不支持此操作”

解决方法

  // 判断是否是 IE
  if (navigator.msSaveOrOpenBlob) {
    navigator.msSaveOrOpenBlob(blob, filename)
  } else {
    downloadElement.click()
  }

菜鸟一枚,仅用来记录一下解决方法 =。=

你可能感兴趣的:(IE11 下载时报错 “Unhandled promise rejection TypeError: 对象不支持此操作”)