javascript下有关dom以及xml节点访问兼容问题

时间:2021-05-26

最近整理浏览器兼容的问题,搞的实在头大,在前人的帮助之下,还是有点进展,下面帖一些代码,我想会比较有用

复制代码 代码如下:
varisIE=????;
//全局变量,判断是否ie,自完善
//newdom方法
functionparseXML(st){
if(isIE){
varresult=newActiveXObject("microsoft.XMLDOM");
result.loadXML(st);
}else{
varparser=newDOMParser();
varresult=parser.parseFromString(st,"text/xml");
}
returnresult;
}
if(!isIE){
varex;
//定义节点xml属性
XMLDocument.prototype.__proto__.__defineGetter__("xml",function(){
try{
returnnewXMLSerializer().serializeToString(this);
}catch(ex){
vard=document.createElement("div");
d.appendChild(this.cloneNode(true));
returnd.innerHTML;
}
});
Element.prototype.__proto__.__defineGetter__("xml",function(){
try{
returnnewXMLSerializer().serializeToString(this);
}catch(ex){
vard=document.createElement("div");
d.appendChild(this.cloneNode(true));
returnd.innerHTML;
}
});
//定义节点text属性
XMLDocument.prototype.__proto__.__defineGetter__("text",function(){
returnthis.firstChild.textContent
});
Element.prototype.__proto__.__defineGetter__("text",function(){
returnthis.textContent
});
//定义selectSingleNode、selectNodes方法
XMLDocument.prototype.selectSingleNode=Element.prototype.selectSingleNode=function(xpath){
varx=this.selectNodes(xpath)
if(!x||x.length<1)returnnull;
returnx[0];
}
XMLDocument.prototype.selectNodes=Element.prototype.selectNodes=function(xpath){
varxpe=newXPathEvaluator();
varnsResolver=xpe.createNSResolver(this.ownerDocument==null?
this.documentElement:this.ownerDocument.documentElement);
varresult=xpe.evaluate(xpath,this,nsResolver,0,null);
varfound=[];
varres;
while(res=result.iterateNext())
found.push(res);
returnfound;
}

}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章