我一直在尝试让 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 - 有人可以向我解释我缺少什么和/或基本概念框架吗?非常感激!