2013-07-02 42 views
0

我有一个下拉菜单,包含在我所有使用php的页面中。在这个菜单上,我正在使用锚点导航到单个页面上的各个div。这是非常简单的代码,锚定在href中的标签,没有JavaScript。当从页面内导航时将链接标记重定向到页首

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

导航到

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

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

+1

你可能会考虑与我们分享一些代码。 –

回答

0

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

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

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