检测使用历史 API 的导航是后退还是前进

Detecting if navigation using history API is back or forward

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

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

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

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

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