繁体   English   中英

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

[英]How to reload the page one time using javaScript

我想在加载所有代码后不使用按钮就重新加载页面。

我用过: location.reload();

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

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

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

假设页面未使用其他任何url参数。

编辑

正如Matt Ball所指出的那样,使用localStorage或cookie并不仅限于单个选项卡或窗口,但是正如Jackson Sandland在评论中所指出的那样,我上面给出的解决方案将改变浏览器的历史记录。 在进行了一些挖掘之后,我想到了另一个公认的“ hacky”但看似有效的解决方案:使用window.name而不是URL中的标记:

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

如果您想测试一下,请将以下内容粘贴到HTML文件中,然后将其加载到浏览器中:

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

输入新名称,然后刷新页面。 您会看到刷新后会显示新名称。 同样,如果您随后打开另一个使用相同文件的标签,则可以独立于另一个标签设置该标签的名称。

最好的选择是在某个位置标记它已重新加载一次。 如Matt所说,使用cookie或localStorage,如果需要按选项卡,则可以更改位置。

也许您可以帮助我们了解您为什么要重新加载,可能还有另一种方法。

您需要在页面的JavaScript之外存储某种状态,以指示是否刷新。 一种方法是使用localStorage或cookie,但是这两种方法都无法按选项卡或按窗口使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM