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 相关文章推荐
js下利用控制器载入对应脚本
Jul 17 Javascript
js对象关系图 方便dom操作
Mar 18 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
一个检测表单数据的JavaScript实例
Oct 31 Javascript
Javascript中获取对象的原型对象的方法小结
Feb 25 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
刷新页面后让控制台的js代码继续执行
Sep 20 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
微信小程序调用后台service教程详解
Nov 06 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命名空间(Namespace)简明教程
2014/06/11 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python连接池实现示例程序
2013/11/26 Python
Python中的Django基本命令实例详解
2018/07/15 Python
pycharm安装和首次使用教程
2018/08/27 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
python getpass实现密文实例详解
2019/09/24 Python
python模块常用用法实例详解
2019/10/17 Python
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
初三化学教学反思
2014/01/23 职场文书
物理教学随笔感言
2014/02/22 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题
Python+tkinter实现高清图片保存
2022/03/13 Python