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 相关文章推荐
jQuery 判断元素上是否绑定了事件
Oct 28 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
jquery通过name属性取值的简单实现方法
Jun 20 Javascript
关于微信中a链接无法跳转问题
Aug 02 Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
微信小程序自定义select下拉选项框组件的实现代码
Aug 28 Javascript
关于微信小程序map组件z-index的层级问题分析
Jul 09 Javascript
js实现踩五彩块游戏
Feb 08 Javascript
微信小程序换肤功能实现代码(思路详解)
Aug 25 Javascript
如何利用js在两个html窗口间通信
Apr 27 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python3中关于cookie的创建与保存
2018/10/21 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
视光学专业毕业生推荐信
2013/10/28 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
小学生考试获奖感言
2014/01/30 职场文书
医院工作检讨书范文
2014/02/10 职场文书
师德师风建设方案
2014/05/08 职场文书
环保倡议书范文
2014/05/12 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
美食节目策划方案
2014/05/31 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
对公司的意见和建议
2015/06/04 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL