【发布时间】:2019-09-27 11:27:53
【问题描述】:
- 在图书页面上,用户单击目录中的第 1 章。
- 在第 1 章页面,用户点击下一章进入第 2 章。
- 用户可以点击下一章任意次数来移动章节。
- 在任何章节页面,如果用户单击返回按钮,用户应该返回书籍页面,而不是返回之前查看的章节页面。换句话说,在章节页面中移动是一种“横向”移动,而不会添加到浏览器历史堆栈中。
问题:
点击下一章时必须执行什么Javascript才能有效地从浏览器历史记录中删除当前章节页面,然后转到新的章节页面,这样历史堆栈看起来就像用户一样已经从书页来到新的章节页了?
努力:
- 我阅读了许多帖子并阅读了文档,尤其是有关操纵浏览器历史记录的 Mozilla 文档。
- 我尝试调用 history.back()(弹出当前条目)然后继续下一章,但当前章只保留在历史记录中,所以当我单击返回时我会回到它按钮。
- 我尝试过 history.replaceState(),但这似乎没有帮助。
- 看来我需要的是 history.popState() 之类的东西,然后继续下一章。
- 我确定我只是缺少一些简单的关键成分。
【问题讨论】:
-
如果我理解正确的话,我会在每次加载新章节时调用 replaceState,这样如果您返回,您将进入 Book 页面
标签: javascript browser-history html5-history