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实现点击图片改变页面背景图的方法
Feb 28 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
Sep 14 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
详解如何使用webpack打包JS
Jun 21 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
Dec 05 Javascript
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
Vue实现可移动水平时间轴
Jun 29 Javascript
使用eslint和githooks统一前端风格的技巧
Jul 29 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 程序员应该使用的10个组件
2009/10/31 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
python验证码识别的实例详解
2016/09/09 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
python如何生成网页验证码
2018/07/28 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
经济管理专业毕业生推荐信
2013/11/11 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android