Управление XML / Ajax с браузерами Opera и Chrome - PullRequest
0 голосов
/ 23 ноября 2011

Прежде всего, извините, мой бедный английский, я кастильец ...

Мне нужна помощь в этом: у меня есть сеть, где я получаю данные из файла 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 голосов
/ 24 ноября 2011

Моя полная функция 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-теги ...

0 голосов
/ 23 ноября 2011

Вызов AJAX кажется правильным, и я не вижу ошибок в консоли Chrome при его выполнении. Не могли бы вы опубликовать полную ошибку, которую вы получили? Я думаю, что ошибка в функции parseXML, а не в вызове AJAX.

...