Javascript 我如何知道用户是否单击;“后退”;按钮

Javascript 我如何知道用户是否单击;“后退”;按钮,javascript,ajax,jquery,Javascript,Ajax,Jquery,我使用锚来处理ajaxy网站的唯一URL。但是,我希望在用户点击浏览器的“后退”按钮时重新加载内容,以便内容始终与url匹配 我怎样才能做到这一点?当用户单击“返回”时是否会触发jQuery事件?如果您使用的是ajax URL而不是重新加载页面,我猜您使用的是哈希导航的#样式的URL。如果是这种情况,您可能希望事件重新加载适当的内容 由于并非所有浏览器都支持它,因此您的代码如下所示: $(window).hashchange(function() { //do something with

我使用锚来处理ajaxy网站的唯一URL。但是,我希望在用户点击浏览器的“后退”按钮时重新加载内容,以便内容始终与url匹配


我怎样才能做到这一点?当用户单击“返回”时是否会触发jQuery事件?

如果您使用的是ajax URL而不是重新加载页面,我猜您使用的是哈希导航的
#样式的URL。如果是这种情况,您可能希望事件重新加载适当的内容

由于并非所有浏览器都支持它,因此您的代码如下所示:

$(window).hashchange(function() {
  //do something with location.hash that just changed
});

您需要使用hashchange事件。有几个流行的插件。我一直在使用地址插件和喜欢它。也有人建议烧烤


YUI history manager通过使用setInterval每隔10毫秒检查一次哈希来实现这一点。back没有注册任何事件,因此这可能是唯一可能的方法。

简而言之,您无法可靠地检测是否跨浏览器单击了back按钮。@Russ:在大多数(如果不是所有)重要的浏览器中,您可以非常可靠地捕捉back按钮的按下。@Russ,在下面的回答(不是注释)框中键入一些文本,然后试着回击。@Matti-这对于你的例子来说是一个非常狭窄的范围……你最初的陈述是一个宽泛的陈述,例如,如果我加载
page1.html
转到
page2.html
…当我从
page2
返回到
page1
@Matti时,你无法检测到它确实是后退按钮-我的意思是你在谈论散列更改,具体来说,很多网站只是
page1
page2
,在所有这些情况下,你无法区分后退按钮点击和浏览器关闭等。事件存在于某些浏览器中,最好在它存在的地方使用它,当它不存在时进行轮询,我回答中的插件就是这样做的。