通过判断浏览器类型,如果为ie,采用另存为的方式达到下载效果。其他浏览器则模拟点击下载。

function downloadFile(title, data) {const blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;'});const ie = navigator.userAgent.match(/MSIE\s([\d.]+)/),ie11 = navigator.userAgent.match(/Trident\/7.0/) && navigator.userAgent.match(/rv:11/),ieEDGE = navigator.userAgent.match(/Edge/g),ieVer = (ie ? ie[1] : (ie11 ? 11 : (ieEDGE ? 12 : -1)));console.log('ie:' + ie);console.log('ieVer:' + ieVer);if (ie && ieVer < 10) {this.message.error('No blobs on IE<10');return;}if (ieVer > -1) {window.navigator.msSaveBlob(blob, title);} else {const url = window.URL.createObjectURL(blob);let link = document.createElement('a');link.setAttribute('href', url);link.setAttribute('download', title);document.body.appendChild(link);link.click();document.body.removeChild(link);}}

说明:title为文件名称;data为回调response,通过this.response获取。

ie10+ js执行.click()下载文件无效相关推荐

  1. js 点击下载文件、图片

    想直接看结论,看代码方法一!!!方法二和方法三不兼容,只是延伸下思路. 参考: https://blog.csdn.net/weixin_33694620/article/details/881705 ...

  2. js实现批量下载文件(csv,xlsx等图片下载需要另外找文档补充download怎么用)

    场景:点击按钮下载文件 1.下载单文件 window.open("http://xxx.xx.xx","_self"); window.open 能够打开的原理 ...

  3. vue.js接收并下载文件流(blob对象)

    在vue框架中,与传统的根据路径下载文件(document.getElementById("").src='')方式不同,有时候,我们会需要将上传的文件在后台直接进行处理再回传到前 ...

  4. linux自动下载ftp文件夹,Linux 下FTP定时执行批量下载文件

    使用FTP定时批量下载指定文件的shell脚本 环境:centos6.9 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用 ...

  5. 原生JS实现Ajax下载文件

    /*** url 下载url* filename 下载文件名称*/ function download(url, filename) {var xhr = new XMLHttpRequest();x ...

  6. js通过URL下载文件

    通过URL下载文件分为两种: 1.doc,docx文件 2.非doc.docx文件 第一种:doc.docx文件下载的函数 /*** url 下载文件路径* fileName 自定义文件名称* tar ...

  7. JS a标签下载文件而不打开文件

    // 下载文件 function downfile(obj) {var url = $(obj).attr("files");//url = "http://10.19. ...

  8. js post请求下载文件

    js 下载post请求的文件 /* content 文件二进制内容 fileName 文件名 */ downloadFile(content, fileName) {(fileName &&a ...

  9. js点击下载文件的几种情况

    先预览,再下载 const downloadFile = (filename,data)=>{const a = document.createElement('a')a.download = ...

最新文章

  1. 哥伦比亚大学「机械手」无需提前了解抓握物体,也能灵活适应形状!
  2. 从CSDN泄密看数据安全
  3. sas数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!...
  4. 重温java中的String,StringBuffer,StringBuilder类
  5. javascript 数组对象中的迭代方法
  6. 云时代架构阅读笔记十三——你的系统如何处理高并发?
  7. oracle 存储过程和函数例子
  8. 百万奖金!交通事件、医学病理、广告检测,江苏大数据开发与应用大赛报名...
  9. linux内核io源码,Linux Kernel do_io_submit()函数整数溢出漏洞
  10. PAT 1083. 是否存在相等的差 (20) - 乙级
  11. fiddler启用过滤规则只显示想要的接口数据
  12. ubuntu下安装beanstalkd
  13. new一个对象的完整过程
  14. redis 学习笔记
  15. ACM144-小柯的烦恼zy
  16. DXP改变字体的方法
  17. 软件项目管理 6.5.自下而上估算法
  18. sql java web动态曲线图_使用Echarts实现动态曲线图表
  19. 仓储绩效评价指标的原则
  20. 双显卡只用独显好吗_双显卡如何切换到独立显卡?双显卡只用独显的方法

热门文章

  1. 美亚杯第一届-个人赛
  2. 16年河北省职称计算机试题,河北省职称计算机考试真题..doc
  3. protobuf版本问题
  4. HOG+SVM行人检测python实现
  5. 名企过来人畅谈IT求职两注意
  6. pyecharts地图map;世界中国广东基础地图显示
  7. 如何跟女朋友解释“W3CShool”之001
  8. AI(人工智能:一种现代的方法)学习之:CSP(Constraint Satisfaction Problems) 约束满足问题:回溯法——前向检查(过滤法)、弧相容检查、 变量排序
  9. 2017年第一次软工实践随笔--031502341
  10. iOS创建浮动按钮,点击按钮“置顶”