IE不支持console.log及文件流下载方法
在IE浏览器情况下 出现了这样一个bug
在其他浏览器下页面无问题
使用IE浏览器打开网页 可以进行正常的功能操作 但是当F12打开开发者工具后关闭此工具 就会出现功能无法使用的问题
一打开开发者工具功能又可以正常使用
使用的是ie11 正常来说已经算是版本比较高的IE了
经过尝试 发现原因是因为代码中有console.log导致
原理:IE没有方法console.log
解决方法:注释即可
当需要做一个下载文件的功能 且后端传来的是以文件流的形式时
IE浏览器不支持常规的创建a标签的方法
此时需要使用IE自带的方法来执行:
// responseType接收形式必须为blob 接收文件流后执行如下代码
let headers = res.headers;
let fileName = "接收文件的名字.文件格式"
let blob = new Blob([res.data], {type:headers['content-type']})
let url = URL.createObjectURL(blob);
if('download' in document.createElement('a')) { //如果浏览器a标签支持此功能
let link = document.createElement('a'); //建立一个a标签
document.body.appendChild(link); //将此标签加入到html中
link.style.display = "none";
link.href = url; //a标签添加url
link.download = fileName;
link.click(); //执行click
URL.revokeObjectURL(link.href) //消除url;
document.body.removeChild(link); //释放标签
} else {
navigator.msSaveBlob(blob,fileName) //IE浏览器下载文件 (不含打开)
navigator.msSaveOrOpenBlob(blob,fileName) //IE浏览器下载文件(含打开)
}
资料:https://www.cnblogs.com/feng18/p/9232258.html
文件流代码太久远了 已经不记得从哪看到的了 有需要的童鞋可自行百度