vue 项目完美运行在IE或者360浏览器兼容模式下 踩坑笔记
场景:最近的项目测试大大发现在360兼容模式下百页。然而这个兼容模式下用的是IE内核 也就是vue项目需要兼容IE。
首先解决 IE不支持 Promise
解决办法
引入 <script src = "https://cdn.polyfill.io/v2/polyfill.min.js"></script>
或 <script type="text/javascript" src ="https://cdn.polyfill.io/v2/polyfill.min.js?features=es6"></script>
如果有更好的办法,请留言 相互学习下哈!!!
运行项目发现还是报错CRIPT5022: SecurityError sockjs.js (1683,5)
解决办法
1. 找到/node_modules/sockjs-client/dist/sockjs.js
2. 找到代码的 1605行
try {
// self.xhr.send(payload); // 注释掉
} catch (e) {
self.emit('finish', 0, '');
self._cleanup(false);
}
到这里,页面正常显示,但是我发现跳转不太好使了。使用 vue-router 地址栏改变,但是需要刷新页面才能生效
解决办法
// App.vue下修改如下
export default {
name: 'App',
mounted(){
function checkIE(){
return '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style
}
if (checkIE()) {
window.addEventListener('hashchange', () => {
var currentPath = window.location.hash.slice(1);
if (this.$route.path !== currentPath) {
this.$router.push(currentPath)
}
}, false)
}
}
}
项目完美运行