使用window.location和window.history

时间:2014-04-22 11:32:25

标签: javascript

如果您使用gmail,您会注意到,一旦您登录,并单击后退和前进按钮,页面就不会重新加载,因此导航非常快。做了一点研究,我发现了javascript的window.history和window.location。似乎这些可用于实现gmail使用的功能。 我想在我们的网站上使用它,因为每次用户点击后退和前进按钮时都会重新加载。 我找到了这个doc(窗口。历史):https://developer.mozilla.org/en-US/docs/Web/API/Window.history

但是我是什么触发了history.back()方法呢?我猜这些是在用户点击浏览器中的后退按钮时调用的?但是,您如何知道用户何时单击后退和/或前进按钮,以便您可以在代码中执行必要的操作?

如果有人使用window.history有一个不错的js小提琴,我们将不胜感激

2 个答案:

答案 0 :(得分:0)

" JavaScript History对象 - 窗口对象的属性 - 包含以前访问过的URL的数组/列表。在本文中,我们将查看历史对象属性和方法,length,current,next,previous属性,back(),forward()和go()方法以及语法和示例。

大多数情况下,JavaScript历史记录对象用于模拟浏览器的后退按钮:

HREF ="的javascript:history.go(-1)"

答案 1 :(得分:0)

由于iFrames,历史API在jsFiddle中并不真正起作用,所以这不是一个选项。

MDN 推送后退按钮时会触发popstate事件

  

popstate事件只能通过执行浏览器操作来触发   单击后退按钮(或在JavaScript中调用history.back())。

您可以使用pushstate()replaceState()功能等更改网址而无需重新加载网页,这一切都非常好documented on MDN,但它是比普通网址稍微复杂一点,你可能需要为旧浏览器等提供后备支持。

History.js是一个使用历史记录API的库,我相信它不再被开发,但无论如何它可能会有所帮助。