iview在IE9,10下面报如下错误:

[Vue warn]: Error in directive transfer-dom inserted hook: “TypeError: 无法获取未定义或 null 引用的属性“transfer””

其原因是IE9、10不支持dataset属性导致的,所以需要在全局定义dataset属性,定义在index.html中即可:

var isIE = function(){ 
                return (window.navigator.userAgent.indexOf("MSIE")>=1);  
            }

// 修复IE10及以下版本不支持dataset属性的问题,兼容transfer-dom.js中使用了dataset的问题
            if (isIE() && 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-') {
                                    name.push(attributes[i].nodeName.slice(5));
                                    value.push(attributes[i].nodeValue);
                                }
                            }
                            for (var j = 0; j < name.length; j++) {
                                obj[name[j]] = value[j];
                            }
                            return obj;
                        }
                    });
                }
            }

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up