vue-cli+webpack+iview项目上线后在其他浏览器显示正常!但在360浏览器的兼容模式下页面空白

问题描述

vue-cli+webpack+iview项目上线后在其他浏览器显示正常!但在360浏览器的兼容模式下页面空白!报错如下!在ie浏览器全部不兼容!

clipboard.png

问题出现的环境背景及自己尝试过哪些方法

在网上查找是因为ie不兼容promise方法
解决方法
安装npm install --save-dev babel-polyfill
在webpack.base.conf.js中配置:
第一种
entry: {
app: ["babel-polyfill","./src/main.js"]
}
第二中
// app: "./src/main.js",

// "babel-polyfill":"babel-polyfill"

第三种

app: ['./node_modules/babel-polyfill/dist/polyfill.js','./src/main.js']

第四种
在main.js中全局import babel-polyfill

第五种
在main.js中全局import babel-polyfill
在index.js加入
// dataset 方法兼容 IE 浏览器。ie10及以下不支持dataset

  if (window.HTMLElement) {
    if (Object.getOwnPropertyNames(HTMLElement.prototype).indexOf('dataset') === -1) {
      Object.defineProperty(HTMLElement.prototype, 'dataset', {
        get: function () {
          var attributes = this.attributes // 获取节点的所有属性
          var name = []
          var value = [] // 定义两个数组保存属性名和属性值
          var obj = {} // 定义一个空对象
          for (var i = 0; i < attributes.length; i++) { // 遍历节点的所有属性
            if (attributes[i].nodeName.slice(0, 5) === 'data-') { // 如果属性名的前面5个字符符合"data-"
              // 取出属性名的"data-"的后面的字符串放入name数组中
              name.push(attributes[i].nodeName.slice(5));
              // 取出对应的属性值放入value数组中
              value.push(attributes[i].nodeValue);
            }
          }
          for (var j = 0; j < name.length; j++) { // 遍历name和value数组
            obj[name[j]] = value[j]; // 将属性名和属性值保存到obj中
          }
          return obj // 返回对象
        }
      })
    }
  }
</script>

你期待的结果是什么?实际看到的错误信息又是什么?

结果问题没解决!求大神执教!小弟感激涕零

阅读 3.3k
2 个回答

不建议这种装一堆,你得定位到具体的代码才比较好解决。建议开发模式通过兼容模式对应的ie版本访问问题页面,明确具体的问题才好处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题