我正在使用 HTML5 History API 编写一个单页 javascript 应用程序。应用程序通过 Ajax 加载内容并在内部使用屏幕堆栈在前景屏幕上维护状态信息。
我想使用后退按钮启用导航,但我不想启用前进按钮。
一些快速的信息:
- 用户应该只能返回,不能前进
- 按浏览器后退按钮关闭当前页面屏幕用户打开并重新加载上一个
- 项目仅针对最新版本的 Chrome,因此其他浏览器的实现并不重要
- 我只使用本机 JavaScript 和 jQuery,我想在没有 History.js 的情况下这样做
当我加载一个新屏幕时,我运行以下行:
history.pushState(screenData, window.document.title, "#");
我通过 jQuery 绑定到 popstate 事件:
$(window).bind("popstate", function(event) {
if (event.originalEvent.state != null) {
// Logic that loads the previous screen using my screen stack
}
});
我的应用程序的历史管理正在运行,但是当我返回时,前进按钮被启用。我需要弄清楚如何从事件中删除history
数据popstate
。
我可以用 replaceState 做到这一点吗?我不知道该怎么做...