找出用户在浏览器历史记录中的位置

时间:2012-10-15 12:44:48

标签: javascript browser-history

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

例如,Firefox可能支持从历史记录中访问个人网址,但这不是我所追求的,因为20个网址的历史记录可能包含重复的网址。

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

例如,用户打开浏览器并浏览了20页 - 因此历史记录包含20个对象。然后用户按下后退按钮4次 - 最后是20页中的第16页(或者说是0..19页中的第15页)。有没有办法使用JavaScript获得当前的偏移量(16或15)?如果是,那怎么办?

2 个答案:

答案 0 :(得分:3)

history.length

返回当前历史记录的长度。

遗憾的是,没有方法可以找出你的位置。

答案 1 :(得分:2)

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

这是我找到的唯一能为我工作的解决方案。

有关详细信息,请参阅my solution here