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

时间:2013-07-02 13:54:38

标签: html menu tags anchor

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

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

导航到

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

如果我导航到该页面,这可以正常工作。如果我已经在页面上它转到标签然后重定向回没有标签的页面(即从test.php #test转到test.php)。导致此行为的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:0)

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

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

这样做的目标是所有哈希链接并防止其默认行为并更改URL。但是,如果没有看到更多的代码,很难判断它是否有效。您还可以互换使用replaceState,这会更改URL而不会在浏览器历史记录中添加条目。代码借鉴here