关于 HTML5 的功能有几个问题pushState
,但我无法找到关于我遇到的两个问题的任何信息。我的popstate
处理程序定义如下:
$(window).bind('popstate', function (e) {
if (!e.originalEvent.state)
return;
LoadContent({ url: e.originalEvent.state.path });
}
该LoadContent
调用只是使用 ajax 填充内容窗格。
问题 1:假设我们从page1
我的网站开始浏览它。LoadContent
不会被调用,因为没有state
. 假设我的浏览历史是这样的:
page1 -> (ajax)page2 -> (ajax)page3 -> (back pressed)page2 -> (back pressed)page1
当我按下浏览器的后退按钮转到 时page2
,一切都很好。但是,当我再次按下返回时,应该加载的内容为null ,page1
这意味着不会调用 LoadContent ,因此内容将保持与 on 相同。按下返回时如何获取要加载的内容?e.originalEvent.state
page2
page1
问题 2:假设我们按下 from page3
to page2
,这意味着我们通过 ajax 加载第二页的内容。现在想象一下,我们再次浏览(即手动将 URL 输入到浏览器的地址栏中)到page3
,然后再次按返回转到page2
. 浏览器不会显示第二页,而是仅显示我们之前检索到的's 内容的ajax 结果page2
,因此不会加载页面的其余部分。如何解决这个问题?
谢谢你的帮助!