当URL中存在哈希值时刷新页面

4
我在我的网站上有一个导航系统,它使用JavaScript将水平堆叠的div向左或向右滑动以显示内容。我正在尝试使网站在关闭JavaScript时更好地运行,因此我有第二个导航系统,它使用哈希值来“转到”相应的部分。

问题出现在如果有人在http://mysite.com/#page2,然后打开了JavaScript。页面会重新加载到#page2部分,这会导致启用JavaScript的导航系统不能正确工作。例如,它重新加载时认为页面在第1部分,而实际上它正在显示第#whatever部分。

我尝试添加parent.location.hash = '';但是当页面重新加载时,它仍然停留在它原来的部分。

有什么办法可以在JavaScript打开时完全刷新页面吗?
1个回答

0

还没有测试过,但您可以设置一个 JavaScript 状态变量。当 JavaScript 首次执行时,它将状态变量设置为 true,检查 URL 是否为基本 URL 或页面节段,然后重新加载到根 URL(mysite.com)。如果状态变量已经是 true,则不会重新加载页面(以便您不会不断地重新加载)。由于变量在 JavaScript 引擎中,因此如果 JavaScript 刚刚被打开,它还没有设置为 true。

这里是使用 JavaScript 解析 URL 的示例。在您的情况下,您基本上只需要查找 # 符号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接