解決IE報錯[vue router]Failed to resolve async component default:strict 模式下不容許分配到只讀屬性

  以前遇到過一個奇怪的問題,在其餘瀏覽器下一切正常,但在萬惡的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"/>

  修改以後一切正常了。

相關文章
相關標籤/搜索