我有一个下拉菜单,我在所有页面上都使用php包含这些菜单。在这个菜单上,我使用锚点导航到单个页面上的各种div。它是非常简单的代码,在href中带有标签的锚点,没有JavaScript。
<a href="test.php#test">Test</a>
导航到
<h2 id="test">Test</h2>
如果我导航到该页面,这可以正常工作。如果我已经在页面上它转到标签然后重定向回没有标签的页面(即从test.php #test转到test.php)。导致此行为的原因是什么?如何解决?
答案 0 :(得分:0)
如果您提供了更多代码,那么它会更有帮助。但我只是猜测这是什么问题。您可以将以下javascript添加到您的页面:
$("a[href^=#]").on("click", function(e) {
e.preventDefault();
history.pushState({}, "", this.href);
});
这样做的目标是所有哈希链接并防止其默认行为并更改URL。但是,如果没有看到更多的代码,很难判断它是否有效。您还可以互换使用replaceState
,这会更改URL而不会在浏览器历史记录中添加条目。代码借鉴here。