资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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

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

成都创新互联公司网站建设服务商,为中小企业提供做网站、成都网站制作服务,网站设计,成都网站托管等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出成都创新互联公司

1.xml文件:menu.xml
    
        1
        system
        0
        mainFrame
        
    
    
        2
        company
        1
        mainFrame
        
    
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:");
       }
    });
});
 
//**********************判断浏览器 —— 简单判断方法*****************************

文章名称:ie中jQuery无法解析xml文件的解决方案
文章出自:http://cdkjz.cn/article/pigipd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220