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 相关文章推荐
javascript 当前日期加(天、周、月、年)
Aug 09 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
限制上传文件大小和格式的jQuery插件实例
Jan 24 Javascript
JS控制表格实现一条光线流动分割行的方法
Mar 09 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 Javascript
Vue组件系列开发之模态框
Apr 18 Javascript
JavaScript Canvas编写炫彩的网页时钟
Oct 16 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
星际争霸任务指南——人族
2020/03/04 星际争霸
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
python实现自动解数独小程序
2019/01/21 Python
python实现矩阵打印
2019/03/02 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
python批量生成条形码的示例
2020/10/10 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
解决方案设计综合面试题
2015/08/31 面试题
服务员自我评价
2014/01/25 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
单位授权委托书范文
2014/08/02 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL