`

[ExtJS3.2源码每天一小时]ext-base.js的getDom与removeNode(之六)

阅读更多
  el:要获取的dom对象对应的对象,这个对象可以是ID,可以是Ext的Element对象。
  getDom : function(el, strict){
            if(!el || !DOC){
                return null;
            }
            //如果是Ext的Element对象,直接返回其dom属性
            if (el.dom){
                return el.dom;
            } else {
                //如果是ID值
                if (typeof el == 'string') {
                    //调用原生api获得dom节点对象e
                    var e = DOC.getElementById(el);
                    // IE returns elements with the 'name' and 'id' attribute.
                    // we do a strict check to return the element with only the id attribute
                    //如果e不为空、浏览器是IE、且校验得到对象的id与原始el
                    if (e && isIE && strict) {
                        if (el == e.getAttribute('id')) {
                            return e;
                        } else {
                            return null;
                        }
                    }
                    return e;
                } else {
                    //除两种情况之外的,直接return el
                    return el;
                }
            }
        }



    //获得body对象 兼容各种浏览器
    getBody : function(){
            return Ext.get(DOC.body || DOC.documentElement);
    }



//删除节点 分别真对ie8之前的版本 和 ie8及其它浏览器采用不同的方式处理
removeNode : isIE && !isIE8 ? function(){
            var d;
            return function(n){
                if(n && n.tagName != 'BODY'){
                    (Ext.enableNestedListenerRemoval) ? Ext.EventManager.purgeElement(n, true) : Ext.EventManager.removeAll(n);
                    //想将要删除的节点加到一个虚拟节点上,最后将虚拟节点的innerHtml属性置空,达到删除目的
                    d = d || DOC.createElement('div');
                    d.appendChild(n);
                    d.innerHTML = '';
                    //删除对应的缓存
                    delete Ext.elCache[n.id];
                }
            }
        }() : function(n){
            if(n && n.parentNode && n.tagName != 'BODY'){
                (Ext.enableNestedListenerRemoval) ? Ext.EventManager.purgeElement(n, true) : Ext.EventManager.removeAll(n);
                n.parentNode.removeChild(n);
                delete Ext.elCache[n.id];
            }
        }

分享到:
评论

相关推荐

    ext 2 简单例子(内附ext-all.css, ext-base.js, ext-all.js三个必不可少的文件)

    ext 是 ExtJs 的简称,是一个强大的js 类库。本资源主要包括三个大的文件ext-all.css,ext-base.js,ext-al.js。在引用ext 类库的时候,这三个文件必不可少。另外我还提供了ext2的一个简单例子,以便大家学习交流。

    extjs-basex.js

    ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端的Web应用程序。`extjs-basex.js`文件很可能是ExtJS库的一个部分,特别是针对BaseX扩展的功能。BaseX是一个高性能、XML数据库系统,常用于处理XML数据。在...

    ext-lang-en.js和ext-lang-zh_CN.js

    Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js

    ext-4.2.1.883.jsb2

    从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。

    extjs extjs-basex.js

    extjs-basex.js extjs-basex.js extjs-basex.js

    ext-4.2.1.883.7z 官方最新版7z压缩

    标题中的"ext-4.2.1.883.7z"指的是ExtJS框架的一个特定版本,4.2.1.883,它被压缩成了7z格式的文件。7z是一种高效的文件压缩格式,由7-Zip软件创建,以提供更高的压缩比和更快的解压缩速度。7z文件通常需要使用支持7...

    Extjs 6.2 最新sdk ext-6.2.0-gpl.zip

    官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...

    extjs jsb文件(ext-4.2.1.883.jsb2)

    从ext官方论坛上下的。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.1.883

    ExtJS入门教程

    <script type="text/javascript" src="extjs3.2/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs3.2/ext-all-debug.js"> <script type="text/javascript" src="extjs3.2/ext-lang-zh_...

    ext-7.0.0-gpl.zip

    描述中的同样信息"ext-7.0.0-gpl.zip"没有提供额外的细节,但我们可以假设它与标题一致,是关于一个特定版本(7.0.0)的扩展或插件的归档文件。 标签"ext"表明这是一个扩展程序,可能用于某种软件平台,如Web开发...

    ext-2.2.zip

    在CDH使用oozie 的时候需要安装ext-2.2.zip; 新增和改进的功能包括: 1、FileUploadField 文件上传 体验例子见:http://extjs.com/deploy/dev/examples/form/file-upload.html 2、GMapPanel GMap扩展 体验...

    ext-3.2-beta_6256-157.zip

    ExtJS 是一个流行的JavaScript库,专门用于构建富客户端的Web应用程序。它的主要功能是提供一套完整的用户界面组件和工具,让开发者能够创建出交互性强、功能丰富的网页应用。标题中的"ext-3.2-beta_6256-157.zip...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    ext-4.2.0.663 EXTJS官方最新版7z压缩

    EXTJS是一种基于JavaScript的开源富客户端应用程序框架,用于构建交互式的Web应用。它提供了一套完整的组件模型,包括数据管理、布局、事件处理等机制,让开发者能够创建复杂的Web界面而无需深入HTML、CSS和...

    ext-3.3.1.rar

    extjs ajax 框架 extjs ajax 框架extjs ajax 框架

    ext-all.js

    extjs3.3 格式化好的ext核心文件

    3------通过实例学习------Ext.js------.docx

    Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。通过实例学习Ext.js,我们可以深入了解其核心组件、布局管理、数据绑定以及用户界面构建等关键知识点。 首先,让我们看一下解压后的Ext.js...

    extjs所需必不可少的三大文件

    在使用ExtJS时,有三个核心文件是必不可少的,它们分别是`ext-base.js`、`ext-all.js`和`ext-all.css`。下面将详细阐述这三个文件的作用及其在ExtJS开发中的重要性。 1. `ext-base.js`:这是ExtJS的基础库文件,...

    ext-2.2.zip+IntroToExt2.zip

    标题中的"ext-2.2.zip+IntroToExt2.zip"指的是两个压缩包文件的组合,其中"ext-2.2.zip"包含了ExtJS库的2.2版本,而"IntroToExt2.zip"则是一个关于ExtJS 2.2的基础教程资料。这两个文件对于学习和使用ExtJS 2.2版本...

Global site tag (gtag.js) - Google Analytics