区分后向/前向单击和历史记录.pushState/replaceState在statechange事件中

Differentiate Back/Forward click and History.pushState/replaceState in statechange event

本文关键字:replaceState pushState statechange 记录 事件 单击 历史      更新时间:2023-09-26

我使用的是History.js插件,它支持HTML5 pushState和replaceState。当用户单击后退/前进按钮以及使用pushState/replaceState时,会触发状态更改。我需要检查状态更改事件是通过后退/前进按钮还是通过使用pushState/replaceState方法触发的。

我还没有看过History.js,但Ben Alman的jQuery BBQ(返回按钮和队列库)是一个包含"hashchange"事件的优秀库。不过,这可能与你试图做的不同,因为他的库依赖于URL中的标签,而不是浏览器的内部状态更改。他还在GitHub上获得了一个关于hashchange的回购。

根据作者在GitHub上的讨论,这是不可能做到的(从一年前开始,再也找不到链接了)。您的选择实际上是寻找某种变通方法,如面包屑等。