6

我知道我使用history对象访问浏览器历史记录,具体来说,我可以使用history.back();,history.forward();history.go(item-number)(或history.go(url))。我试图确定用户当前在浏览器历史记录中的位置。

例如,Firefox 可能支持从历史记录中访问单个 url,但这不是我想要的,因为 20 个 url 的历史记录可能包含重复的 url。

请注意,我对项目中的历史记录不感兴趣,而是对任何用户会话中的浏览器历史记录感兴趣。

例如,用户打开浏览器并浏览了 20 个页面 - 因此历史记录包含 20 个对象。然后用户按了 4 次返回按钮 - 最终在 20 页的第 16 页(或者更确切地说是 0..19 页的第 15 页)结束。有没有办法使用 JavaScript 获得这个当前的偏移量(16 或 15)?如果是,那么如何?

4

2 回答 2

3
history.length

返回当前历史的长度。

可悲的是,没有办法弄清楚你在哪里。

于 2012-10-15T12:50:56.967 回答
2

不知道这是否会有所帮助,但使用 HTML5,您可以为浏览器历史记录列表中的每个项目添加一个状态对象。这为您提供了一种可能的方法来保存每个项目的索引(即,它history.length在第一次创建时的值),然后您可以稍后对其进行检查。

这是我发现的唯一对我有用的解决方案。

有关更多详细信息,请参阅我的解决方案

于 2015-08-17T15:44:47.877 回答