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之水平横向滚动歌词同步的应用
May 07 Javascript
浅析jQuery的链式调用之each函数
Dec 03 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
May 09 Javascript
能说明你的Javascript技术很烂的五个原因分析
Oct 28 Javascript
JS实现匀速运动的代码实例
Nov 29 Javascript
js定时调用方法成功后并停止调用示例
Apr 08 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
May 31 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
vue-router 路由基础的详解
Oct 17 Javascript
解决layer弹出层msg的文字不显示的问题
Sep 11 Javascript
node.js中事件触发器events的使用方法实例分析
Nov 23 Javascript
JS变量提升及函数提升实例解析
Sep 03 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
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
Python中使用不同编码读写txt文件详解
2015/05/28 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
python 实现多维数组转向量
2019/11/30 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
英国景点门票网站:attractiontix
2019/08/27 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
学校消防安全制度
2014/01/30 职场文书
企业总经理岗位职责
2014/02/13 职场文书
大学生个人自荐信
2014/02/24 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server