我们能否使用Javascript获取浏览器历史记录?

20

我们能否使用JavaScript获取我的网站浏览器历史记录?

我看到一些旧的帖子和讨论提到过这个问题... 但是那些方法对我不起作用。

是否有可能并且如何实现?


3
你想要做什么? - Reporter
“...但结果什么都没有”--什么的结果?您有一些尝试过但未按预期工作的代码吗?如果您发布了代码,那将会很有帮助。 - Shawn Chin
如果你正在寻找一种在浏览器历史记录URL中导航的方法,以下链接可能会有所帮助:http://www.w3schools.com/jsref/obj_history.asp,https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history/ - Riz
可能是重复问题:https://dev59.com/dHA75IYBdhLWcg3weY5f - Anderson Green
我想要所有的历史记录对象或列表,就像我们点击历史选项卡一样。 - ThinkTank
2个回答

7

由于隐私原因,不可能读取客户浏览器历史数据。

如果您试图观察或生成关于访问者的数据,仅限于您自己的域名,那么可以通过会话和cookie保留页面信息。

您还可以通过自己的脚本收集网站可点击对象的单击数据,并通过ajax请求发送数据。

如果您正在运行一种单页应用程序类型的网站并使用“pushState()”函数生成自己的URL,则只需添加一些额外的代码即可收集该数据并在页面/ URL 更改时通过ajax发送信息。


1
但是可以使用浏览器扩展程序中的“历史记录”API(在ChromeFirefox中)来读取客户端的历史记录。 - Anderson Green
4
我认为强制让访问你的网站的人安装浏览器扩展程序既不是好的做法,也不太可能实现。 - Serdar
这可能不是一个好的实践,但仍然是可能的,因为您可以使用网站上的脚本检查扩展是否已安装 - Anderson Green
网页也可以使用onclick事件监听器来记录用户点击的页面URL。 - Anderson Green

5
你可以利用JavaScript的History对象来做到这一点。
history属性的返回值是一个history对象,它是一个包含从该窗口内访问的URL详细信息的历史记录项数组。此外,请注意,History对象是一个JavaScript对象,而不是HTML DOM对象。
Window对象的history属性的语法如下:
window.history 

17
你忘了提到的是,现有的方法非常有限。它们只允许浏览对象和替换项目。 - Reporter
4
@Pranay:我不知道你分享的浏览器教程是指哪一个,但 Chrome 浏览器(27.0.1453.116 m)的历史对象缺少以下属性:current、next 和 previous。 - Marecky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接