【问题标题】:Management XML/Ajax with Opera and Chrome browsers使用 Opera 和 Chrome 浏览器管理 XML/Ajax
【发布时间】:2011-11-23 07:41:05
【问题描述】:

首先,对不起,我的英语很差,我是卡斯蒂利亚人......

我需要帮助:我有一个网站,可以从 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();
          ....

在这里我使用这个变量,但在 Chrome 和 Opera 浏览器中,我在 $.ajax({"Something went wrong" 但在 Firefox 和 Internet Explorer 中它可以工作。

非常感谢您的任何回答

【问题讨论】:

  • 从 Chrome 的网络标签中,您能看到正在发出的请求吗?以及响应内容?如果是这样,回应是什么?有报错吗?
  • Chrome 的网络标签没有任何响应、任何错误、任何警告。

标签: html xml google-chrome jquery opera


【解决方案1】:

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

【讨论】:

  • 用鼠标在控制台中选择错误并复制粘贴到这里
  • 你能发布完整的 parseXML 函数吗?我去看看。
【解决方案2】:

我的完整 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 标签中...

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多