如何使用javaScript重新加载页面一次

时间:2012-12-17 20:37:39

标签: javascript jquery load

我想在没有使用按钮的情况下加载所有代码后重新加载我的页面。

我用过:location.reload();

问题是它一直重复加载我的页面。

3 个答案:

答案 0 :(得分:7)

每次重新加载页面时,window.reload()都会被点击。做这样的事情:

if(window.location.href.indexOf('?reloaded') === -1) window.location.href = window.location.href + "?reloaded=true";

这假设页面没有使用任何其他url参数。

修改

Matt Ball指出,使用localStorage或cookies不会限制单个标签或窗口,但正如Jackson Sandland在评论中指出的那样,我上面给出的解决方案将改变浏览器历史记录。在做了一些挖掘后,我想出了另一个,当然是“hacky”但看似有效的解决方案:在URL中使用window.name而不是标志:

if(window.name !== "refreshed") {
    window.name = "refreshed";
    window.location.refresh();
}

如果您想对此进行测试,请将以下内容粘贴到HTML文件中并将其加载到浏览器中:

<script>
window.name = prompt("Window name", window.name);
</script>

输入新名称,然后刷新页面。您将看到刷新时会显示新名称。同样,如果您随后打开具有相同文件的第二个选项卡,则可以单独设置该选项卡的名称。

答案 1 :(得分:3)

你最好的选择是在某个地方重新加载一次。 使用Matt所说的cookies或localStorage,如果你需要每个标签,你可以改变location.hash

也许你可以帮助我们理解为什么你想重新加载,可能还有另一种方式。

答案 2 :(得分:2)

您需要在页面的JavaScript之外存储某种状态,以指示是否刷新。一种方法是使用localStorage或cookie,但这些方法都不适用于每个标签或每个窗口。