3

我一直在尝试让 HTML5 历史 API 工作,它看起来相当简单,但我无法让它与浏览器的前进按钮一起工作。

基本概念似乎很简单:当您转到一个新的“页面”(通过 AJAX、javascript 等)时,使用 pushState 进行保存,在第一个参数中传递的对象的 state 字段中保存您将用于重新创建该状态的信息. 然后在 popState 上放置一个侦听器,您可以获取信息并重新创建您的状态。

因此,当我通过内部按钮在我的应用程序中前进时

    history.pushState({ myTag: true, div:theDiv }, null, event.target.href);

当我通过内部按钮在我的应用程序中向后移动时

    event.preventDefault();
    history.back(1);

popState 监听器是

if (!e.originalEvent.state || !e.originalEvent.state.myTag) return;
var theDiv = $('#' + e.originalEvent.state.div);

在内部或通过浏览器后退按钮向后移动时,popState 侦听器工作正常。但是使用浏览器的前进按钮前进,我得到 e.originalEvent.state 的 NULL - 有人可以向我解释我缺少什么和/或基本概念框架吗?非常感激!

4

0 回答 0