qwe*_*ymk 14 javascript html5 pushstate
码:
<a href="#" onclick="window.onpopstate = function() { alert('pop'); };
return false; ">set up window.onpopstate
</a><br>
<a href="#somehash2">change hash</a>
<div onclick="alert(location.href);">show location.href</div>?
Run Code Online (Sandbox Code Playgroud)
为什么单击该change hash链接会触发popstate,如果单击该change hash链接然后单击返回,它是否应该仅被触发?
Jam*_*urz 17
window.onpopstate火灾的原因不是因为哈希的变化.这是因为当您单击锚标记时,历史记录已更改.
来自https://developer.mozilla.org/en/DOM/window.onpopstate:
每次活动历史记录条目更改时,都会将popstate事件分派到窗口.如果正在激活的历史记录条目是通过调用history.pushState()创建的,或者受到对history.replaceState()的调用的影响,则popstate事件的state属性包含历史记录条目的状态对象的副本.