【问题标题】:Forced Redirect only in Chrome Browser仅在 Chrome 浏览器中强制重定向
【发布时间】:2013-04-29 19:39:19
【问题描述】:

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

});

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

【问题讨论】:

  • 我试图重现,但 FF 和 Chrome 在西班牙语中具有相同的行为。它永远不会出现在我的日历上。我可能做错了测试,但我想我已经尝试了你概述的内容。您绝对确定这是 Chrome 问题吗?你已经清除了整个缓存并且仍然可以重现?
  • 是的,清除了缓存等。有几个人在 Chrome 中复制了它。如果您将默认浏览器语言更改为西班牙语,然后返回该页面,重新加载,它会显示几秒钟,然后重新加载。仅在 Chrome 中,我们使用的是最新版本。它在所有其他浏览器中都能正常工作。

标签: javascript jquery google-chrome joomla


【解决方案1】:

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

它从函数 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

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

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

【讨论】:

    猜你喜欢
    • 2017-12-28
    • 2014-06-17
    • 2015-03-03
    • 2019-08-03
    • 2019-09-10
    • 2018-05-06
    • 2020-12-07
    • 2018-03-21
    相关资源
    最近更新 更多