2

所以我正在尝试编写一个动态加载内容的脚本,这样页面就不必刷新(主要内容将被替换,但侧边栏、页眉、页脚等将保持不变地方)。我已经触发了我的事件,并且我正在使用pushState()它来更新我的 URL。但是,我不知道应该如何使用window.history.back()and window.history.forward()。我是否必须重新定义这两个功能才能让它成功旅行?

4

3 回答 3

0

虽然pushState()是历史记录,但您需要传递 URL,以便页面在不刷新的情况下加载。但是windows.history.back()会自动带您从浏览器缓存中访问的最后一页。这里您不传递任何 URL。同样适用于 windows.history.forward()

于 2012-07-21T08:15:12.070 回答
0

我发现做(我认为)你所追求的最简单的方法是将你的动态加载性连接到你的 window.location.hash,所以:

window.location.hash='page_1';

然后,您可以将事件处理程序绑定到哈希更改,然后将 AJAX 转到第 1 页。

更改哈希会导致一个新的历史页面,因此您根本不必对 window.history 做任何事情。

于 2012-07-21T08:09:38.443 回答
0

您正在使用PushState更新 URL,因此您的历史记录已经在支持该功能的所有浏览器中为您处理。但是老的浏览器不支持PushState,你可能要测试一下

if (history.pushState) { //is supported }

我建议您在此处使用History.js脚本。它将恢复使用旧的 onhashchange 功能,用于 HTML4 浏览器和用于 HTML5 的 pushState。您将不必history.forward手动处理。

另外,您还需要配置您的 .htaccess,以便您网站的书签和页面链接正常工作。

详细指南

于 2012-07-21T08:12:10.157 回答