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 HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
使用javascript控制cookie显示和隐藏背景图
Feb 12 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
JavaScript表单验证的两种实现方法
Feb 11 Javascript
微信小程序中多个页面传参通信的学习与实践
May 05 Javascript
js模拟百度模糊搜索的实例
Aug 04 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
深入理解 Koa 框架中间件原理
Oct 18 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 Javascript
微信小程序在text文本实现多种字体样式
Nov 08 Javascript
vue实现购物车案例
May 30 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 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
javascript 面向对象编程 function也是类
2009/09/17 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
javascript每日必学之继承
2016/02/23 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
python统计日志ip访问数的方法
2015/07/06 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
浅谈python3中input输入的使用
2019/08/02 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
网络教育毕业生自我鉴定
2013/10/10 职场文书
将相和教学反思
2014/02/04 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
学生吸烟检讨书
2014/09/14 职场文书
禁毒主题班会教案
2015/08/14 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
15个值得收藏的JavaScript函数
2021/09/15 Javascript