我正在使用 History.js 和 Jquery(以及一点 GWT),我使用 History.pushState() 方法来存储 Ajax 有效负载,然后在 statechanged 事件中根据有效负载绘制屏幕。现在在我的应用程序中,浏览器的后退和前进按钮可以正常工作。
奇怪的是,当用户单击我的应用程序中的链接,将他们带到我的应用程序之外的页面(相同域但另一个应用程序)时,他们出去,查看页面,然后点击返回按钮重新进入我的应用程序。
我的应用程序加载后,它没有收到 popstate 或 statechange 事件,但不知何故,浏览器实际上正在绘制屏幕,使其与离开我的应用程序之前的样子完全相同。
我想了解这里发生了什么。
[编辑:我错了。我的代码正在执行,我确实收到了 statechange。我对 History.js 有一些假设,现在我意识到要正确编码,您应该收到 AJAX 有效负载,然后调用 pushstate 将其放入堆栈。然后您的 statechange 事件将触发,您应该在 statechange 函数中从堆栈中读取状态并相应地绘制屏幕。当您正常运行您的应用程序时将执行相同的代码,并且当用户点击后退按钮时将执行相同的代码。]