【问题标题】:Why continually refresh the page?为什么不断刷新页面?
【发布时间】:2015-07-17 13:57:37
【问题描述】:

我有这个页面:

link

通过:地子

我尝试使用此代码进行重定向:

代码查询:

var url = "http://dizievents.ch/index.php/event/food-n-liquor-dizinvolta-2/";
$(location).attr('href',url);

在 Firefox 上似乎一切正常,但 Chrome 会不断刷新页面。

我认为我们进入了一个无限的while循环。

我不明白为什么会发生这种情况......我们找到的所有示例都与此代码有关。

你能告诉我这个问题的解决方案是什么吗? 您可以测试该网站以查看 Chrome 上会发生什么

提前致谢!

编辑:

我试过了

var url = "http://dizievents.ch/index.php/event/food-n-liquor-dizinvolta-2/";
window.location.href = url;

【问题讨论】:

  • 您是否正在重定向到您所在的同一页面?
  • 您要重定向的页面是否会重定向到自身?
  • 是的......不明白收到负面通知......这似乎是一个愚蠢的问题?
  • 如果你加载一个重定向到自身的页面,它会创建一个无限循环......你想通过重定向来完成什么也许我们可以帮助你解决这个问题。
  • 重定向时可以在url中传递参数,如果不重定向则检查是否存在。

标签: javascript jquery html redirect


【解决方案1】:

如果页面加载后,您再次重定向到它,它将继续重新加载。

该javascript每次都会运行,并且会不断重定向。

【讨论】:

  • 以及如何让它只运行一次?
【解决方案2】:

你可以这样做:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var temp = getParameterByName("dontredirect");
if(temp != "true")
{
    var url = "http://dizievents.ch/index.php/event/food-n-liquor-dizinvolta-2/?dontredirect=true";
    $(location).attr('href',url);
}

这只会重定向第一次访问。但是,如果您首先告诉我们为什么要重定向,我们可能会提供更好的答案...

getParametersByName() 取自here

【讨论】:

    【解决方案3】:

    试试这个而不是 $(location)...

    window.location.href = url;
    

    【讨论】:

    • 很遗憾没有任何变化
    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2020-11-21
    • 1970-01-01
    • 2019-10-14
    • 2023-03-20
    相关资源
    最近更新 更多