在IE10下报 :[Vue warn]: Error in di

2018-01-29  本文已影响152人  幸福幸福幸福

这是因为在transfer-dom.js中使用了不兼容ie11以下的dataset属性,添加以下代码可兼容ie8+浏览器。

//兼容 transfer-dom.js中 使用了 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 = [],
                    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; //返回对象
            }
        });
    }
}
上一篇下一篇

猜你喜欢

热点阅读