IE不支援console.log及下載檔案流方法
阿新 • • 發佈:2021-12-13
在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
檔案流程式碼太久遠了 已經不記得從哪看到的了 有需要的童鞋可自行百度