我一直在努力让HTML5历史API工作,看起来相当简单,但我无法使用浏览器的前进按钮。
基本概念似乎简单:当您转到新的“页面”(通过AJAX,javascript等)时,使用pushState保存,在第一个参数中传递的对象的状态字段中保存您将用于重新创建该状态的信息。然后在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 - 有人可以向我解释我缺少什么和/或基本的概念框架吗?非常感谢!