仅在Chrome浏览器中强制重定向

时间:2013-04-29 19:39:19

标签: javascript jquery google-chrome joomla

我有一个仅在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;
    });

});

非常感谢任何帮助,我不是开发人员。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

<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>

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

我认为meta tag的重定向旨在重定向网页而非Ajax调用。

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

在PHP中你可以这样做:

header('Location: http://somewhere.com/blah')