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

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

修改后效果:

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

 

你可能感兴趣的:(tree)