2012-10-15 32 views
4

我知道我访问使用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)?如果是,那么如何?

+0

出于兴趣,您希望使用此信息的目的是什么? – deceze

+0

https://developer.mozilla.org/zh-CN/docs/DOM/window.history – epascarello

+0

@epascarello谢谢,我知道这一点。但它并没有回答我的问题。 –

回答

3
history.length 

返回当前历史的长度。

可悲的是有没有方法找出你在哪里。

+1

是的,这就是我认为... –

1

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

这是我发现为我工作的唯一解决方案。

查看my solution here了解更多详情。

+0

这只能在相应地使用pushstate的单页面应用程序。这不是OP想要的:“请注意,我对我的项目中的历史记录不感兴趣 - 而是在任何用户会话中的浏览器历史记录。” – GottZ