jQuery的加载功能,不允许后退按钮?

时间:2012-02-27 14:04:35

标签: javascript jquery back browser-history jquery-load

我正在开发一个社交网站,并打算让它尽可能地动态。到目前为止,我遇到的唯一主要问题是在使用jQuery的加载函数时无法使用浏览器后退按钮。

我添加了以下代码,以便在使用javascript函数时实际更改用户URL:

var stateObj = { foo: page };
history.pushState(stateObj, page, page);

我认为这可以按照我的意愿运行,但遗憾的是网址会发生变化,但网页内容保持不变。

有谁知道如何加载访问的最后一页?不是动态的,通常就像任何正常的后退按钮一样。

如果您想了解实际情况的示例,可以访问临时网址:http://goo.gl/0BOUV
你需要登录,所以这里有一些登录细节:
电子邮件:test@email.com
密码:密码

1 个答案:

答案 0 :(得分:2)

如果您使用pushState更改显示的网址,那么当用户按下"返回"时,浏览器不会直接重新加载网址。相反,它会触发onpopstate事件。有关详细信息,请参阅the Mozilla docs。您需要为该事件编写一个处理程序,根据状态数据重新加载适当的页面。

顺便提一下,pushState是一种新的HTML5功能,因此并非在所有浏览器中都可用。 History.js库@Blender提及了一个很好的跨浏览器兼容性层。即使使用库,您仍然需要处理用户使用后退按钮时的状态更改事件。