在IE10下报 :[Vue warn]: Error in directive transfer-dom inserted hook: "TypeError: 无法获取未定义或 null 引用的属性“transfer”"found in在IE9下直接出错: 对象不支持“now”属性或方法请问这些标签是不支持IE10,IE9吗?谢谢
vq8itlhq1#
我刚刚发现这个问题,RC版本的时候还没有问题,现在突然发现问题了,看来版本要固定才行……
oxcyiej72#
所以解决了吗?我也遇到这个问题了,版本:2.2.0
6jjcrrmo3#
@VanMess do you have time to contribute to the fix?
If you have possibility to test in IE9 and IE10 I think we just need to add the polyfill
import 'core-js/fn/date/now';
here: https://github.com/iview/iview/blob/v2.3.2/src/index.js#L2-L3.Because IE9 and IE10 do not have Date.now().
Date.now()
ckocjqey4#
这是因为在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; //返回对象 } }); } }
8xiog9wr5#
@sharpfeel 这个问题是解决了,但是transfer把位置移错了怎么解决,只要有使用了transfer指令,对于其他没有使用transfer指令的显示也错位了图1
图2
bqucvtff6#
是在transfer-dom.js哪里加这些代码的
3phpmpom7#
可以考虑使用 element-dataset https://www.npmjs.com/package/element-dataset
ufj5ltwl8#
sharpfeel 的回答 正解~~~
h6my8fg29#
找到了解决方法 http://www.h5w3.com/?p=886
9条答案
按热度按时间vq8itlhq1#
我刚刚发现这个问题,RC版本的时候还没有问题,现在突然发现问题了,看来版本要固定才行……
oxcyiej72#
所以解决了吗?我也遇到这个问题了,版本:2.2.0
6jjcrrmo3#
@VanMess do you have time to contribute to the fix?
If you have possibility to test in IE9 and IE10 I think we just need to add the polyfill
here: https://github.com/iview/iview/blob/v2.3.2/src/index.js#L2-L3.
Because IE9 and IE10 do not have
Date.now()
.ckocjqey4#
这是因为在transfer-dom.js中使用了不兼容ie11以下的dataset属性,添加以下代码可兼容ie8+浏览器。
8xiog9wr5#
@sharpfeel 这个问题是解决了,但是transfer把位置移错了怎么解决,只要有使用了transfer指令,对于其他没有使用transfer指令的显示也错位了
图1
图2
bqucvtff6#
是在transfer-dom.js哪里加这些代码的
3phpmpom7#
可以考虑使用 element-dataset https://www.npmjs.com/package/element-dataset
ufj5ltwl8#
sharpfeel 的回答 正解~~~
h6my8fg29#
找到了解决方法 http://www.h5w3.com/?p=886