功能描述:使用jQuery解析已经定义好内容的xml文件
ie中jQuery无法解析xml文件的解决方案
原创
©著作权归作者所有:来自51CTO博客作者pantao20的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.xml文件:menu.xml
<?xml version="1.0" encoding="gb2312"?>
<menus>
<menu>
<id>1</id>
<name>system</name>
<parentId>0</parentId>
<target>mainFrame</target>
<url></url>
</menu>
<menu>
<id>2</id>
<name>company</name>
<parentId>1</parentId>
<target>mainFrame</target>
<url></url>
</menu>
</menus>
2.自定义js文件解析xml文件:index.js
$(document).ready(function(){
$.ajax({
url:"xml/menu.xml ",
type:"POST",
dataType:"xml",
success:function(data){
$(data).find("menu").each(function(){
alert("success");
alert($(this).text());
});
},
error:function(data){
alert("fail:");
}
});
});
3.新建index.html文件引入jQuery.js、xml文件及index.js文件,在ie中(任何版本)运行index.html,结果总是弹出“fail”,但是在Firefox中的结果却是“success”。
在网上搜了很多资料,最后在这篇文章http://www.newmediafun.com/2009/07/parsing-xml-with-jquery-in-internet-explorer/上找到了解决方案。是因为ie中的限制无法正确解析xml文件,它解析出的是一个text对象(在我引用的文章中有更详细的解释)所以针对这个加入判断就可以解决了
正确代码index.js
$(document).ready(function(){
$.ajax({
url:"xml/menu.xml",
type:"POST",
dataType:($.browser.msie) ? "text" : "xml",
success:function(data){
var xml;
if( typeof data == "string" ){
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
$(xml).find("menu").each(function(){
alert("success");
alert($(this).text());
});
},
error:function(data){
alert("fail:");
}
});
});
//**********************判断浏览器 —— 简单判断方法*****************************
<script language="javascript">
if(window.XMLHttpRequest)//判断浏览器是否属于Mozilla,Sofari
{
alert("firefox");
}
else if(window.ActiveXObject)//判断浏览器是否属于IE
{
var browser=navigator.appName
var b_version=navigator.appVersion
var version=b_version.split(";");
var trim_Version=version[1].replace(/[ ]/g,"");
if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0")
{
alert("IE 7.0");
}
else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0")
{
alert("IE 6.0");
}
}
</script>
下一篇:我的友情链接
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
深度解析云原生混部解决方案
Volcano推出的云原生混部解决方案,从应用层到内核提供端到端的资源隔离与共享机制,最大化提升资源利用率。
云原生 云原生混部 资源调度 Volcano 华为云 -
php大文件下载时防止内存溢出的解决方案
大文件下载防止内容溢出
文件句柄 加载 打开文件 -
IE无法查看源文件解决方案
IE无法查看源文件解决方案
职场 IE 休闲 无法查看源文件