javascript下有关dom以及xml节点访问兼容问题


Posted in Javascript onNovember 26, 2007

最近整理浏览器兼容的问题,搞的实在头大,在前人的帮助之下,还是有点进展,下面帖一些代码,我想会比较有用

var  isIE  =   ????;  
// 全局变量,判断是否ie,自完善  
// new dom 方法  
function  parseXML(st){  
     if (isIE){  
         var  result  =   new  ActiveXObject( "microsoft.XMLDOM" );  
        result.loadXML(st);  
    } else {  
         var  parser  =   new  DOMParser();  
         var  result  =  parser.parseFromString(st,  "text/xml" );  
    }  
     return  result;  
}  
if ( ! isIE){  
     var  ex;  
    // 定义节点xml属性  
    XMLDocument.prototype.__proto__.__defineGetter__( "xml" ,  function (){  
         try {  
             return   new  XMLSerializer().serializeToString( this );  
        } catch (ex){  
             var  d  =  document.createElement( "div" );  
            d.appendChild( this .cloneNode( true ));  
             return  d.innerHTML;  
        }  
    });  
    Element.prototype.__proto__.__defineGetter__( "xml" ,  function (){  
         try {  
             return   new  XMLSerializer().serializeToString( this );  
        } catch (ex){  
             var  d  =  document.createElement( "div" );  
            d.appendChild( this .cloneNode( true ));  
             return  d.innerHTML;  
        }  
    });  
    //定义节点text属性  
    XMLDocument.prototype.__proto__.__defineGetter__( "text" ,  function (){  
         return   this .firstChild.textContent  
    });  
    Element.prototype.__proto__.__defineGetter__( "text" ,  function (){  
         return   this .textContent  
    });  
    // 定义selectSingleNode、selectNodes  方法  
    XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath){  
         var  x = this .selectNodes(xpath)  
         if ( ! x  ||  x.length < 1 ) return   null ;  
         return  x[ 0 ];  
    }  
    XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){  
         var  xpe  =   new  XPathEvaluator();  
         var  nsResolver  =  xpe.createNSResolver( this .ownerDocument  ==   null   ?   
             this .documentElement :  this .ownerDocument.documentElement);  
         var  result  =  xpe.evaluate(xpath,  this , nsResolver,  0 ,  null );  
         var  found  =  [];  
         var  res;  
         while  (res  =  result.iterateNext())  
            found.push(res);  
         return  found;  
    }  }
Javascript 相关文章推荐
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
发布一个基于javascript的动画类 Fx.js
Nov 05 Javascript
js实现addClass,removeClass,hasClass的函数代码
Jul 13 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
直接拿来用的15个jQuery代码片段
Sep 23 Javascript
纯js实现手风琴效果
Apr 17 Javascript
jQuery 改变P标签文本值方法
Feb 24 jQuery
JavaScript展开操作符(Spread operator)详解
Jul 20 Javascript
JS实现简易留言板(节点操作)
Mar 16 Javascript
OpenLayers加载缩放控件使用方法详解
Sep 25 Javascript
Node.js实现断点续传
Jun 23 Javascript
asp javascript 实现关闭窗口时保存数据的办法
Nov 24 #Javascript
javascript实现的动态添加表单元素input,button等(appendChild)
Nov 24 #Javascript
用js查找法实现当前栏目的高亮显示的代码
Nov 24 #Javascript
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
Nov 23 #Javascript
document.designMode的功能与使用方法介绍
Nov 22 #Javascript
Flash+XML滚动新闻代码 无图片 附源码下载
Nov 22 #Javascript
摘自百度的图片轮换效果代码
Nov 19 #Javascript
You might like
PHP中的串行化变量和序列化对象
2006/09/05 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
同学聚会欢迎辞
2014/01/14 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
高中历史教学反思
2016/02/19 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js