在我正在处理的网站的页脚上,我有不同页面的链接,在一种情况下,链接到同一页面的2个链接,网址中有不同的哈希,如下所示:
<a href="http://example.com/mypage#test>Test</a>
<a href="http://example.com/mypage#test2>Test2</a>
这些哈希值不是真正的锚点,它们反映了用户采取的一些操作(即显示/隐藏某些内容)。 如果我来自另一个页面,我会毫无问题地导航。但是,如果我已经在&#34; mypage&#34;,那么哈希值会发生变化,但没有任何反应。浏览器检测并锚定更改,从而尝试导航到锚点 这很公平,但我希望我的用户实际上被重定向到&#34; http://example.com/mypage#test2&#34;,就像他自己在地址中复制粘贴一样酒吧。我怎样才能做到这一点?
我可以使用hashchange事件但是它会使管理其余的javascript变得复杂,所以我想知道是否有更简单的方法来执行它。
答案 0 :(得分:0)
如果您使用的是jQuery,则有一个非常简单的解决方案:
$(window).on('hashchange', function() {
//code
});
看看这个:On - window.location.hash - Change?
另外this MDN文档。
答案 1 :(得分:0)
使用window对象的location.hash属性来查找锚点是什么。要使用普通javascript检测哈希值的更改,只需使用onhashchange事件。
window.onhashchange = new function() {
window.location.replace("http://example.com/mypage" + window.location.hash);
});