0

有问题的网站是新发布的http://mry.com/。我完全被难住了。即使使用前进和后退箭头,页面转换也可以工作,并且似乎标题图像和导航只加载一次,即使它看起来像标准站点结构中的 URL 更改。我认为这可能是一个异步 ajax 加载,但是没有 hashbangs 是如何实现的呢?任何见解将不胜感激。

4

1 回答 1

1

HTML5 历史 API

您可以使用HTML5 History API

history.pushState()

调用pushState()与设置类似window.location = "#foo",两者都将创建和激活与当前文档关联的另一个历史条目。但是,pushState()还有其他一些优点。

窗口.popState

至于window.popState

每次活动历史条目更改时,都会向窗口发送一个popState事件。如果被激活的历史条目是由pushState()调用 replaceState 创建或受其影响,则 popstate 事件的 state 属性包含历史条目状态对象的副本。

浏览器兼容性

您可以在此处找到有关 HTML5 History API 状态的贡献 wiki 。

填充物和其他

pjaxHistory.js似乎是一个很好的选择。

GitHub Tree Slider帖子是一篇不错的快速阅读文章。

于 2012-06-19T17:35:34.730 回答