`
反求诸己
  • 浏览: 543147 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

Ie9 ext tree 失效

    博客分类:
  • Ext
 
阅读更多

  我看到好多网上实现ie9ext tree的办法都是通过渲染模式为ie8 或者更低的浏览器,其实现的代码都是添加meta标记(<metahttp-equiv="X-UA-Compatible" content="IE=8" />),这样是可以解决ie9中面板事件失效的问题,但是这不是一个最终的解决办法,通过我一天的调试研究,我修改了下ext-all.js的代码,之后通过一步一步调试,才解决了ie9的这个问题.. 下面我详细说下哪里错了,具体怎么改,以后我们应该注意什么.

1.      哪里错了:

a)   得到ext-all.js的未压缩版,我是得到ext-all.js的压缩版,然后通过js美化,得到清晰地版本,解压的地址为(http://app.baidu.com/webkits)
b)   然后找到相应的代码块getAttributeNS 属性所对应的函数属性所对应的函数,代码如下:

[javascript]   view plain copy
  1. getAttributeNS: Ext.isIE ?  
  2.         function (ns, name) {  
  3.             var  d =  this .dom;  
  4.             var  type =  typeof  d[ns +  ":"  + name];  
  5.             if  (type !=  "undefined"  && type !=  "unknown" ) {  
  6.                 return  d[ns +  ":"  + name]  
  7.             }  
  8.             return  d[name]  
  9.         }: function (ns, name) {  
  10.             var  d =  this .dom;  
  11.             return  d.getAttributeNS(ns, name) || d.getAttribute(ns +  ":"  + name) || d.getAttribute(name) || d[name]  
  12.         }  
(c)  首先这个方法的作用是:通过命名空间 URI 和名称来获取属性值。
参数 描述
ns
必需。规定从中获取属性值的命名空间 URI。
name 必需。规定从中取得属性值的属性。
(d)  这段代码在ie9中取属性值得方式错了. 在这块是通过数组的行式来取 取出来的值是null类型,

2.      怎么改:

将数组的取值方式改为是通过attribute的类型来取.代码如下(为了兼容其他的类型,可能我还对操作属性还不是很理解透彻,所以做的保险一点,不修改原来的代码在后面添加代码 ):

[javascript]   view plain copy
  1. getAttributeNS: Ext.isIE?  
  2.             function (ns, name) {  
  3.                 var  d =  this .dom;  
  4.                 var  type =  typeof  d[ns +  ":"  + name];  
  5.                 if  (type !=  "undefined"  && type !=  "unknown" ) {  
  6.                     return  d[ns +  ":"  + name]  
  7.                 }  
  8.                 type = typeof  d[name];  
  9.                 if (type !=  "undefined"  && type !=  "unknown" )  
  10.                 {  
  11.                     return  d[name];  
  12.                 }  
  13.                 type=typeof  d.getAttribute(ns +  ":"  + name);  
  14.                 if (type !=  "undefined"  && type !=  "unknown" )  
  15.                 {  
  16.                     return  d.getAttribute(ns +  ":"  + name);  
  17.                 }  
  18.                 type=typeof  d.getAttribute(name);  
  19.                 if (type !=  "undefined"  && type !=  "unknown" )  
  20.                 {  
  21.                     return  d.getAttribute(name);  
  22.                 }  
  23.                 return   null ;  
  24.         }: function (ns, name) {  
  25.             var  d =  this .dom;  
  26.             return  d.getAttributeNS(ns, name) || d.getAttribute(ns +  ":"  + name) || d.getAttribute(name) || d[name]  
  27.         }  

我只是在它后面多添加了几次判断,如果没有走方法体内的return,那么就会往下执行,这样可以不会影响ext其他的影响..

3.      今后应该注意什么:

         这个ext tree的 ie9 bug 是在取dom属性的值时候报了错,所以以后在拿什么样的属性,用getAttribute, 什么样的属性用 数组形式取值, 什么浏览器下,用什么取值方式,都得注意一下,现在我还没有对取值方式没有研究透彻,下次blog里面将会详细介绍如何《js  dom对象 属性值》希望大家多多提意见,


 

分享到:
评论

相关推荐

    EXT tree 使用 实例 最新

    EXT Tree 是一个强大的JavaScript组件,它是EXT JS框架的一部分,用于构建可交互的树形数据结构。EXT Tree在网页中常用于展示层次结构的数据,如文件系统、组织结构或导航菜单等。EXT Tree提供了丰富的功能,包括...

    ext TREE

    【标题】"ext TREE"指的是在软件开发领域中,尤其是Java Web开发中,EXT JS库中的Tree组件。EXT JS是一个强大的JavaScript用户界面库,用于构建富客户端应用。Tree组件是EXT JS中的一个重要部分,它允许开发者创建可...

    Ext Tree示例

    Ext Tree 是 Ext JS 库中的一个组件,它用于在用户界面上展示层次化的数据结构,类似于文件系统的目录结构。在给定的资源中,我们有多个 HTML 文件(tree2.html, tres.html, s1.html, tree.html)和 JavaScript 文件...

    oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree

    标题中的"oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree"似乎是一个组合字符串,它可能代表了某个项目或教程的文件结构。其中,“oa”可能是项目或系统的名称,而“ext”、“java”、“oa_ext”、“tree_...

    EXT Tree的简单实践

    EXT Tree 是一个基于 ExtJS 库的组件,用于构建可交互的树形数据结构。在 Web 开发中,树形控件常用于展示层级关系的数据,例如目录结构、组织架构或者菜单系统。EXT Tree 提供了丰富的功能和高度自定义的选项,使其...

    Ext tree json 动态加载完美实例

    在本文中,我们将深入探讨如何使用Ext JS的Tree Panel与JSON数据进行动态加载,并实现多选和单选功能。Ext JS是一种强大的JavaScript库,用于构建富客户端应用,而Tree Panel则是展示层次结构数据的一种组件。在后台...

    extTree例子点击出现等

    ExtTree是Ext JS库中的一个组件,用于创建和展示树形结构的数据。它在Web应用程序中广泛使用,特别是在需要组织和导航层次结构信息时。在本案例中,“extTree例子点击出现界面”指的是用户在浏览ExtTree时,通过点击...

    ext session失效 页面跳转

    下面将详细讨论EXT Session失效以及如何实现页面跳转至登录页。 首先,EXT是一个JavaScript库,用于构建交互式的、数据驱动的Web应用。它主要基于Sencha Touch和Ext JS,提供了一套完整的组件和API,用于创建桌面和...

    EXT TREE 扩展CHECKBOX JS

    EXT TREE扩展CHECKBOX JS是一种在EXT JS框架下对树形组件(Tree Panel)进行增强,实现复选框功能的技术。EXT JS是一个强大的JavaScript GUI库,它提供了丰富的组件和功能,用于构建复杂的Web应用程序。在EXT JS中,...

    EXT tree学习 参考

    EXT Tree是EXT JS库中的一个组件,用于在Web应用程序中展示层次结构的数据。EXT JS是一个强大的JavaScript UI框架,提供了一系列的可复用组件,EXT Tree就是其中之一,它可以帮助开发者构建功能丰富的树形视图,常...

    Ext.tree.TreeLoader附带封装的json类

    在本文中,我们将深入探讨`Ext.tree.TreeLoader`与JSON数据在Ext JS框架中的应用。`Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻...

    ext grid tree 应用

    在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...

    Ext 带多选的Tree

    在EXT JS这个强大的JavaScript库中,Tree组件是一个用于展示层级数据的重要工具。"Ext 带多选的Tree"指的是在EXT JS的Tree组件中集成了多选功能,允许用户通过复选框来选择多个树节点,从而实现批量操作或者进行多级...

    ext tree 分页

    在EXT JS框架中,"ext tree 分页"是一种优化技术,用于处理大量数据时避免页面卡顿的问题。在EXT JS的树形组件(TreePanel)中,如果一次性加载所有节点,特别是当树结构非常深或者节点数量巨大时,不仅会消耗大量...

    Ext tree json Demo

    Ext Tree JSON Demo是一个基于ExtJS库实现的异步加载树形结构的示例项目。ExtJS是一个强大的JavaScript UI框架,广泛用于构建富客户端应用程序。在本项目中,它被用来展示如何利用JSON数据来动态加载树节点,提高...

    ext tree grid 的高级实例运用

    在EXT JS这个强大的JavaScript框架中,`Tree`和`Grid`是两个非常重要的组件,用于构建数据密集型的用户界面。在"ext tree grid 的高级实例运用"中,我们将深入探讨如何有效地结合这两个组件,实现复杂的交互功能。...

    ext tree json 例子(不含EXT包)

    "ext tree json 例子(不含EXT包)"这个标题暗示我们将讨论如何在不直接引用EXT完整包的情况下,仅使用EXT JS中关于TreePanel和JSON解析的部分来构建一个动态的树形结构。这可能涉及到手动引入EXT的核心组件,如...

    Ext.Tree.Panel

    `Ext.Tree.Panel`是EXT JS库中的一个重要组件,用于展示层次结构的数据,通常用作树形菜单或文件系统目录的视图。这个组件是EXT JS框架中用于创建交互式、可扩展的树结构的工具。以下是对`Ext.Tree.Panel`相关知识的...

    Ext tree 结合dwr 调用后台数据

    "Ext tree 结合dwr 调用后台数据"这个主题涉及到两个关键的技术:Ext JS的Tree组件和Direct Web Remoting (DWR)。这两个技术的结合使得前端用户界面能够动态地展示并操作后台的数据。 首先,让我们来了解一下**Ext ...

    Ext-tree加载

    Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载

Global site tag (gtag.js) - Google Analytics