使用Opera和Chrome浏览器管理XML / Ajax

时间:2011-11-23 07:41:06

标签: html xml google-chrome jquery opera

首先,抱歉形成了我可怜的英语,我是卡斯蒂利亚......

我需要帮助:我有一个网络,我从XML文件中捕获数据。

我的代码是:

$(function() {
    $.ajax({
        type: "GET",
        cache: false,
        dataType: ($.browser.msie) ? "text" : "xml",
        success: parseXML,
        error: function(){alert("Error: Something went wrong");}
    });
});


function parseXML(){
    var xml = null;
    if (typeof window.ActiveXObject != 'undefined' )
    {   // code for IE
        xml = new ActiveXObject( "Microsoft.XMLDOM" ); 
    }
    else if((typeof document.implementation != 'undefined' ) && (typeof document.implementation.createDocument != 'undefined'))
    {   // code for Mozilla, Firefox, Opera, etc.
        //xml = new XMLHttpRequest();
        xml = document.implementation.createDocument( "", "", null );
    }
    else{
        xml = new XMLHttpRequest();
    }

    xml.async=false;
    xml.resolveExternals = false;
    xml.validateOnParse = false;
    xml.load("dades.xml");

    total=$(xml).find('llibre').size();
    $(xml).find('llibre').each(function(){
            var desc = $(this).find('descripcio').text()
            var img = $(this).find('imatge').text();
            var url = $(this).find('url').text();
          ....

在这里我使用这些vars,但在Chrome和Opera浏览器中我在$ .ajax中出错({“出错了” 但是在Firefox和Internet Explorer中它可以工作。

非常感谢任何答案

2 个答案:

答案 0 :(得分:0)

AJAX调用似乎正确,我在执行Chrome控制台时看不到任何错误。你能发布你得到的完整错误吗?我认为错误发生在parseXML函数中,而不是在AJAX调用中。

答案 1 :(得分:0)

我的完整parseXML函数:

function parseXML(){
    var xml = null;
    if (typeof window.ActiveXObject != 'undefined' )
    {   // code for IE
        xml = new ActiveXObject( "Microsoft.XMLDOM" ); 
    }
    else if((typeof document.implementation != 'undefined' ) && (typeof document.implementation.createDocument != 'undefined'))
    {   // code for Mozilla, Firefox, Opera, etc.
        //xml = new XMLHttpRequest();
        xml = document.implementation.createDocument( "", "", null );
    }
    else{
        xml = new XMLHttpRequest();
    }
    xml.async=false;
    xml.resolveExternals = false;
    xml.validateOnParse = false;
    xml.load("dades.xml");

    total=$(xml).find('llibre').size();
    $(xml).find('llibre').each(function(){
        var id_text = $(this).attr('id');                                           
        if((id_text>=3*(index-1)) && (id_text<3*index)){
            var desc = $(this).find('descripcio').text()
            var img = $(this).find('imatge').text();
            var url = $(this).find('url').text();

            if(id_text%3==0){

                //Aquest es el primer element que sortira a la pantalla, cal eliminar els altres abans dels altres per si no s'emplena la pantalla
                $('#imatge1').empty();
                $('#imatge2').empty();
                $('#imatge3').empty();
                $('#text1').empty();
                $('#text2').empty();
                $('#text3').empty();

                if(url==""){
                    //Quan no hi ha url en el arxiu xml, no afegim link a la imatge
                    $('<li>').html('<img src="'+img+'"/>').appendTo('#imatge1');
                }
                else{
                    $('<li>').html('<a href="' + url + '"><img src="'+img+'"/></a>').appendTo('#imatge1');
                }
                //$("#text1").append(desc);
                $('<li>').html(desc).appendTo('#text1');
                if(url!=""){
                    $('<li>').html('<a href="' + url + '"> Link </a>').appendTo('#text1');
                }
            }
            else if(id_text%3==1){
                if(url==""){
                    $('<li>').html('<img src="'+img+'"/>').appendTo('#imatge2');
                }
                else{
                    $('<li>').html('<a href="' + url + '"><img src="'+img+'"/></a>').appendTo('#imatge2');
                }
                $('<li>').html(desc).appendTo('#text2');
                if(url!=""){
                    $('<li>').html('<a href="' + url + '"> Link </a>').appendTo('#text2');
                }
            }
            else if(id_text%3==2){
                if(url==""){
                    $('<li>').html('<img src="'+img+'"/>').appendTo('#imatge3');
                }
                else{
                    $('<li>').html('<a href="' + url + '"><img src="'+img+'"/></a>').appendTo('#imatge3');
                }
                $('<li>').html(desc).appendTo('#text3');
                if(url!=""){
                    $('<li>').html('<a href="' + url + '"> Link </a>').appendTo('#text3');
                }
            }
        }
    }); //close each(
}

我认为函数的其余部分并不重要,因为我只将de vars放在html标签中......