Html 从页面内导航时重定向到页面顶部的标记链接

Html 从页面内导航时重定向到页面顶部的标记链接,html,menu,tags,anchor,Html,Menu,Tags,Anchor,我有一个下拉菜单,我使用php在我的所有页面上都包含了它。在这个菜单上,我使用锚定位到单个页面上的各个div。这是非常简单的代码,在href中带有标记,没有JavaScript <a href="test.php#test">Test</a> 导航到 <h2 id="test">Test</h2> 测试 如果我正在导航到该页面,则可以正常工作。如果我已经在页面上,它会转到标记,然后重定向回没

我有一个下拉菜单,我使用php在我的所有页面上都包含了它。在这个菜单上,我使用锚定位到单个页面上的各个div。这是非常简单的代码,在href中带有标记,没有JavaScript

            <a href="test.php#test">Test</a>

导航到

            <h2 id="test">Test</h2>
测试

如果我正在导航到该页面,则可以正常工作。如果我已经在页面上,它会转到标记,然后重定向回没有标记的页面(即从test.php#test到test.php)。是什么导致了这种行为?我如何修复它?

如果您提供了更多的代码,那么它会更有帮助。但我只是在猜测问题是什么。您可以将以下javascript添加到页面:

$("a[href^=#]").on("click", function(e) {
  e.preventDefault();
  history.pushState({}, "", this.href); 
});

这样做的目的是针对所有哈希链接,防止其默认行为并更改URL。但是如果没有看到更多的代码,就很难判断它是否有效。您还可以互换使用
replaceState
,这将更改URL,而无需向浏览器历史记录中添加条目。从.

借来的代码,你可以考虑和我们共享一些代码。