0

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

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

导航到

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

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

4

1 回答 1

0

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

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

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

于 2013-07-02T15:43:40.113 回答