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 })()
修改前效果:
修改后效果:
ext 3.2 tree 在IE10中点击事件失效的bug
时间: 2024-10-11 07:11:49