检测使用历史记录API的导航是返回还是前进

时间:2015-06-05 08:23:44

标签: javascript browser-history

是否有一致的方法来确定popstate是由前进按钮还是后退按钮引起的?

我目前正在添加新页面的状态下保存时间戳,这意味着导航对大多数部分工作正常,但是如果例如使用history.push加载了三个页面并且用户导航回来到了第二个并刷新它,时间戳被更新,因此动画开始变得奇怪,因为前面现在是一个时间戳较低的页面,触发了后面的动画。

可以通过添加两个屏幕在http://goo.gl/26MlRW中重现该行为,然后返回一次并刷新页面。

示例代码:http://goo.gl/pDGctA

1 个答案:

答案 0 :(得分:1)

好的,我找到了修复bug的方法,即调用脚本时查看当前的history.state,如果它包含时间戳,则将其用作当前视图时间戳,作为当前状态实际上是在刷新之间转移的