基本上,我在页面上有许多链接 - index.html,它们看起来像这样:
<li><a href="index.html#0">test 0</a></li>
<li><a href="index.html#1">test 1</a></li>
<li><a href="index.html#2">test 2</a></li>
<li><a href="index.html#3">test 3</a></li>
我在 window.onload 事件中附加了一个函数,它将打开一个包含片段 ID 的警告框,所以如果我点击第一个链接,我应该得到一个带有“0”等的警告框。
但是,当我从 URL 栏访问 index.html 并按回车键时,我只会收到一个警告框。当我点击链接时,没有出现警告框。我认为这是因为 window.onload 事件没有被调用...有谁知道如何解决这个问题?
最佳答案
您需要 window.onhashchange
事件,该事件在 anchor 导航时触发
https://developer.mozilla.org/en/DOM/window.onhashchange
对于不支持的 UA,您必须处理 document.links
上的 onclick 事件并确定链接是否指向当前文档(即:只有 link.hash 与 location.href 不同)
关于javascript - 使用不同的 Fragment ID 加载同一页面不会导致页面重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061843/