为了账号安全,请及时绑定邮箱和手机立即绑定

ie中jQuery无法解析xml文件的解决方案

标签:
JQuery

功能描述:使用jQuery解析已经定义好内容的xml文件

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>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消