2

我有一个仅在 Chrome 中出现的 Javascript/重定向问题。如果您在浏览器中将默认语言设置为西班牙语,并访问此页面:

http://www.fastrackids.com/es/bogota

在除 Chrome 之外的所有浏览器中都可以正常工作。在 Chrome 中,大约 3 秒后您会被重定向到日历页面。(日历是页面上的选项卡之一。)

仅当 Chrome 设置为西班牙语默认语言时才会发生这种情况。它不会发生在任何其他浏览器中。我不是开发人员,但我已将其范围缩小到一个脚本。如果我删除脚本,没问题,但如果我把它留在里面,它会影响 Chrome。脚本如下(chrome重定向到的URL在脚本中):

jQuery(document).ready(function() 
{

    function loadCal(link)
    {
        jQuery('#loading_page').show();
        jQuery.ajax({
            url: link,
            cache: false,
            dataType: "html",
            success: function(data) {
                jQuery("#listings_calendar").html(data);
                jQuery('#loading_page').hide();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                jQuery("#listings_calendar").html('<h2>There was an error retrieving the calendar.</h2>');
                jQuery('#loading_page').hide();
            }
        });
    };  


    var date = new Date();
    var date_str = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();

    var link = '/index.php?option=com_jumi&fileid=5&Itemid=49&task=ShowCView&format=raw&SearchDate=' + date_str + '&listing_id=' + jQuery('#listing_id').val();
    loadCal(link);


    jQuery('#listings_calendar').delegate("a", "click", function(event){
        event.preventDefault();
        loadCal(jQuery(this).attr('href') + '&format=raw');
        return false;
    });

});

任何帮助将不胜感激,我不是开发人员。

4

1 回答 1

0

幸运的是,我可以重现它。我跟踪了您的代码并发现了一些东西。

它从templates/jreviews_overrides/views/themes/ftk/theme_js/listings.js使 Ajax 调用的函数 loadCal开始

http://www.fastrackids.com/index.php?option=com_jumi&fileid=5&Itemid=49&task=ShowCView&format=raw&SearchDate=2013-7-10&listing_id=453&_=1373450843892

在英语中,它按预期返回日历表。但在西班牙语中它返回此代码

<html><head><meta http-equiv="refresh" content="0;http://www.fastrackids.com/showprofile?SearchDate=2013-7-10&_=1373450843892&format=raw&lang=es&listing_id=453&ss=&task=ShowCView" /></head><body></body></html>

如您所见,它试图重定向到另一个包含日历的 url。

我相信重定向的meta tag目的是重定向网页而不是 Ajax 调用。

如果要重定向 Ajax 调用。更好地使用header重定向。

在 PHP 中,您可以执行以下操作:

header('Location: http://somewhere.com/blah')
于 2013-07-10T10:22:04.907 回答