欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【FireFox对XML的处理兼容IE的节点处理方法】,下面是详细的分享!
FireFox对XML的处理兼容IE的节点处理方法
<! DOCTYPE Html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< TITLE > 使firefox对xml的处理兼容IE的selectSingleNode selectNodes方法 </ TITLE >
< META NAME="Author" CONTENT="emu" >
< META NAME="KeyWords" CONTENT="firefox IE selectSingleNode selectNodes" >
< META NAME="Description" CONTENT="使firefox可以支持selectSingleNode selectNodes方法" >
< SCRIPT LANGUAGE="javascript" >
<!--
var isIE=!! document.all;
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;
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;
}
});
XMLDocument.prototype.__proto__.__defineGetter__( " text " , function (){
return this .firstChild.textContent
});
Element.prototype.__proto__.__defineGetter__( " text " , function (){
return this .textContent
});
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;
}
}
var x=parseXML( " <people> <person first-name=\ " eric\ " middle-initial=\ " H\ " last-name=\ " jung\ " > <address street=\ " 321 south st\ " city=\ " denver\ " state=\ " co\ " country=\ " usa\ " /> <address street=\ " 123 main st\ " city=\ " arlington\ " state=\ " ma\ " country=\ " usa\ " /> </person> <person first-name=\ " jed\ " last-name=\ " brown\ " > <address street=\ " 321 north st\ " city=\ " atlanta\ " state=\ " ga\ " country=\ " usa\ " /> <address street=\ " 123 west st\ " city=\ " seattle\ " state=\ " wa\ " country=\ " usa\ " /> <address street=\ " 321 south avenue\ " city=\ " denver\ " state=\ " co\ " country=\ " usa\ " /> </person></people> " );
alert( " 搜索所有人的姓氏(last-name) " )
var results=x.selectNodes( " " );
for ( var i=0 ; i < results.length;i ++ )
alert( " Person # " + i + " has the last name " + results[i].nodeValue);
alert( " 搜索第二个人 " );
// IE是以0为下标基数的,而不是1
if ( ! document.all)
results=x.selectSingleNode( " /people/person[2] " );
else
results=x.selectSingleNode( " /people/person[1] " );
alert(results.xml)
alert( " 获得住址在donver街上的人 " );
results=x.selectNodes( " //person[address/@city='denver'] " );
for ( var i=0 ; i < results.length;i ++ )alert(results[i].xml)
if ( ! document.all){
// 获得所有街名中带south的地址
results=x.selectNodes( " //address[contains(@street, 'south')] " );
alert(results[ 0 ].xml);
} else {
alert( " IE不支持 //address[contains(@street, 'south')] 这种查询方式 " )
}
// -->
</ SCRIPT >
</ HEAD >
< BODY >
</ BODY >
</ HTML >
以上所分享的是关于FireFox对XML的处理兼容IE的节点处理方法,下面是编辑为你推荐的有价值的用户互动:
相关问题:关于前端的几个知识点,劳烦知友帮忙解答一下
答:而另外两个只是IE支持,不是标准,Firefox就不支持 ,所以大家只要记得有...DOM事件模型最独特的性质是,文本节点也触发事件(在IE中不会)。4、XMLHttpRequest... >>详细
相关问题:网页设计中如何解决浏览器兼容问题
答:1. 目标不居中;一般新手都爱出现这个问题,主要原因是对盒子模型不够理解,如果发现你的页面没有居中,基本上有两种情况:a. 如果是在浏览器中没有居中,就是没盒子,就是要用一个大DIV把所有需要居中元素装起来,然后给盒子一个css样式margin:... >>详细
相关问题:CSS兼容IE6,IE7,FireFox兼容CSS的解决方法
答:一、CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) #wrapper { width: 100px!important; /* IE7+FF */ width: 80px; /* IE6... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
