事件用于重新单击本地锚

Event for reclicking local anchor

本文关键字:单击 用于 新单击 事件      更新时间:2023-09-26

点击本地锚的链接可以通过window.onhashchange() 检测到,如果它涉及到URL哈希值的更改。

然而,我注意到至少在Chrome(我没有检查这与其他浏览器),如果你然后滚动页面并选择一个链接到相同的本地锚,任何onclick处理程序的链接火灾,然后页面跳转到锚,但显然onhashchange()不火,也不window.onload()。这一点很重要,因为它们都将在移动到锚点之后触发,而链接onclick处理程序在移动到锚点之前触发

所以:是否有一个关联到onload()跳转到一个本地锚,已经在URL哈希中指出?

没有此事件,但由于页面没有重新加载,因此可以在onclick处理程序中使用超时,以便链接等待直到页面移动后,例如

link.onclick = function () {
    setTimeout (
        function () {
            // Do whatever after the jump.
        }, 100
    )
}

十分之一秒不是很明显,但可能足够的时间来转移。如果你使用1/4或1/2秒,间隔应该是明显的,如果"做什么"是用户将要注意到的事情,这可能是一个快速线索,也可能不是。