window.history.length的大坑

这个大坑就是:不要用window.history.length确定是否还能继续回退。

记住,window.history.length只表示你看过了多少个页面。

如果你访问了三个页面,然后又点回退按钮,退回来,退到第一个页面,请问,window.history.length此时是几?

是1?错!是3!这就是坑爹的地方,你无法根据window.history.length确定是否还能继续回退。

当然了,如果window.history.length是1,那么肯定是不能回退了,但是大于1,你就不敢说能不能继续回退。

那么,究竟怎样判断是否还能继续回退呢?

办法只能是:

随时记录当前页面URL,当执行了history.go(-1)之后,获得新的页面URL,然后跟从前记录的URL做对比,如果一致,说明没回退成功,那么就是回退到头了。

这个办法在非极端场合是够用的,如果某些时候服务器强制回退,或者前后URL一致但还真就不是一个页面,那么我这个方法就失效了。

所以,应仔细规范自己的项目,避免极端情况。

推荐阅读更多精彩内容