使用a标签下载时对不同浏览器的兼容性

 时间:2026-02-15 16:36:30

1、a标签下载常规做法:

var a = document.createElement('a') // 先创建a标签

a.href = base // base是后端返回的数据

· a.download = '下载.jpg' // 下载的图片名

a.click(); // 开始下载

这样做完发现在IE里没有反应,原因是IE不支持a标签的download 属性,IE需要用到msSaveBlob方法

2、a标签下载兼容IE做法:

var a = document.createElement('a') // 先创建a标签

a.href = blob // base是后端返回的数据

· a.download = '下载.jpg' // 下载的图片名

if (navigator.msSaveBlob) {

// 兼容IE

var blob = Blob([blob], { type: 'image/jpg'});

return navigator.msSaveBlob(blob, '月报报表.jpg');

}

a.click(); // 开始下载

3、在火狐发现也是不能下载,原因是body里没有a标签,解决的方法就是把创建的a标签添加到body里

兼容性所有浏览器的写法就是:

var a = document.createElement('a') // 先创建a标签

document.body.appendChild(a);

a.style.display='none';

a.href = blob // base是后端返回的数据

· a.download = '下载.jpg' // 下载的图片名

if (navigator.msSaveBlob) {

// 兼容IE

var blob = Blob([blob], { type: 'image/jpg'});

return navigator.msSaveBlob(blob, '月报报表.jpg');

}

a.click(); // 开始下载

  • 浏览器最小化时让网页显示到系统托盘如何设置
  • Windows Server 2008安装 和HTTP配置的实验
  • win11如何给创建文件关联
  • win10环境变量path的值超过1023字符的解决方法
  • 如何设置文件资源管理器打开时的首选项
  • 热门搜索
    fbl是什么意思 关于生活的名言 如期而至是什么意思 如何打发淡奶油 与奴隶的生活攻略 coat是什么意思中文 如何让鼻梁变高 如何辟谷减肥 cad线条怎么加粗 我的初三生活作文