以前遇到過一個奇怪的問題,在其餘瀏覽器下一切正常,但在萬惡的IE下,卻一直不行。css
具體問題場景就是:好比orderDetail頁面出現問題,那麼只要是路由跳轉的,點第1次沒法跳轉,必須得點第2次才能夠跳轉,可是跳轉過去以後,頁面也是一片空白,不加載路由頁面。而後控制檯報錯:strict 模式下不容許分配到只讀屬性。canvas
因此我往這方面搜索,在網上看到一些相關信息瀏覽器
IE中JavaScript異常提示:strict 模式下不容許分配到只讀屬性。報異常的代碼以下:this
document.getElementById("mapLayer").style = "width: 98%;height:98%;";
解決方法以下: 將css屬性拆分開依次設置屬性值便可。spa
document.getElementById("mapLayer").style.width = "98%"; document.getElementById("mapLayer").style.height = "98%";
注:在這嚴格模式下xxx.style會被認定爲只讀屬性,因此在IE中報錯。code
可是,我在個人代碼裏找了幾圈都沒有找到相似的只讀屬性。blog
沒辦法,只能使用傻辦法一層一層排查。最後發現把orderDetail頁面裏的內容所有換成其餘頁面,發現是能夠正常的,由此能夠肯定,問題就出在該orderDetail頁面裏,而後再到orderDetail頁面裏一層一層排查。發現問題出在這裏ip
import QRCode from 'qrcode' // 動態生成二維碼 useqrcode () { let canvas = document.getElementById('canvas') let _this = this QRCode.toCanvas(canvas, this.qrcode, function (error) { if (error) { _this.$message({ message: '二維碼生成失敗,請從新支付', type: 'error' }) } }) },
關鍵是不知道爲何引入QRCode,而後畫圖會致使IE報這種錯,對IE實在是蛋疼,沒辦法只能修改這地方路由
解決方案:換 qriously 生成二維碼get
<qriously class="qrcode" :value="qrcode" :size="150"/>
修改以後一切正常了。