【问题标题】:jQuery's load feature, doesn't allow back button?jQuery的加载功能,不允许后退按钮?
【发布时间】:2012-02-27 14:04:35
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多