1

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

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

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

我认为这会按我的意愿工作,但不幸的是 URL 发生了变化,但页面的内容保持不变。

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

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

4

1 回答 1

2

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

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

于 2012-02-27T14:18:14.000 回答