您的位置:首页 > 其它

ext 3.2 tree 在IE10中点击事件失效的bug

2014-08-05 17:38 260 查看
ext3.2 中的tree在IE中进行兼容性测试,遇到IE10时,无法点击,其他版本的IE(7、8、9、11)均正常。此bug是由于ext-all.js中的getAttributeNS方法不能兼容IE10出错引起的,下载了ext3.4,这里的getAttributeNS 被重写了,将3.4中的方法写入3.2中的ext-all.js文件中,IE10中tree恢复正常。

修改前:

getAttributeNS: Ext.isIE ?
function(s, q) {
var t = this.dom,
r = typeof t[s + ":" + q];
if (!Ext.isEmpty(r) && r != "unknown") {
return t[s + ":" + q]
}
return t[q]
}: function(r, q) {
var s = this.dom;
return s.getAttributeNS(r, q) || s.getAttribute(r + ":" + q) || s.getAttribute(q) || s[q]
}


修改后:

getAttributeNS: function(m, l) {
return this.getAttribute(l, m)
},
getAttribute: (function() {
var p = document.createElement("table"),
o = false,
m = "getAttribute" in p,
l = /undefined|unknown/;
if (m) {
try {
p.getAttribute("ext:qtip")
} catch(n) {
o = true
}
return function(q, s) {
var r = this.dom,
t;
if (r.getAttributeNS) {
t = r.getAttributeNS(s, q) || null
}
if (t == null) {
if (s) {
if (o && r.tagName.toUpperCase() == "TABLE") {
try {
t = r.getAttribute(s + ":" + q)
} catch(u) {
t = ""
}
} else {
t = r.getAttribute(s + ":" + q)
}
} else {
t = r.getAttribute(q) || r[q]
}
}
return t || ""
}
} else {
return function(q, s) {
var r = this.om,
u, t;
if (s) {
t = r[s + ":" + q];
u = l.test(typeof t) ? undefined: t
} else {
u = r[q]
}
return u || ""
}
}
p = null
})()


修改前效果:



修改后效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: