vue+iview兼容IE9以上的解决办法

  1. 支持ES6新语法,安装babel-polyfill

IE不支持es6语法

安装

npm install --save babel-polyfill

或者(下同)

yarn add babel-polyfill
复制代码
修改webpack.base.conf.js

// 修改之前
entry: {
app: ‘./src/main.js’
},
// 修改后
entry: {
app: [‘babel-polyfill’, ‘./src/main.js’]
},
复制代码
在main.js中添加

import ‘babel-polyfill’
复制代码2. IE10以下,iview的日期组件无法选择

兼容dataset,ie10及以下不支持dataset,而iview的transfer-dom.js使用了这个属性

方法一:安装element-dataset
yarn add element-dataset
复制代码
在main.js中添加

import ElementDataset from ‘element-dataset’
ElementDataset()
复制代码方法二

在main.js中添加

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 // 返回对象
}
})
}
}
复制代码3. 支持promise

IE不支持promise

安装es6-promise

yarn add es6-promise
复制代码
在main.js中添加

import promise from ‘es6-promise’
promise.polyfill()
复制代码4. ie9不支持placeholder属性

安装ie-placeholder

yarn add ie-placeholder
复制代码
在main.js中添加

import ‘ie-placeholder’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值