以前遇到过一个奇怪的问题,在其余浏览器下一切正常,但在万恶的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"/>
修改以后一切正常了。