1. 程式人生 > 其它 >IE不支援console.log及下載檔案流方法

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

檔案流程式碼太久遠了 已經不記得從哪看到的了 有需要的童鞋可自行百度