用例: 我有一个网页,其中显示了一些功能的弹出框。弹出框可以被认为是一个 HTML div,当点击相应的按钮时显示。单击取消按钮/单击浏览器后退按钮时再次隐藏。
问题: 考虑显示弹出框。当用户单击后退按钮时,他不应该被导航回上一页,而是只有弹出框 div 应该被隐藏。
如何使用 javascript 将此功能添加到浏览器后退按钮?
提前致谢
用例: 我有一个网页,其中显示了一些功能的弹出框。弹出框可以被认为是一个 HTML div,当点击相应的按钮时显示。单击取消按钮/单击浏览器后退按钮时再次隐藏。
问题: 考虑显示弹出框。当用户单击后退按钮时,他不应该被导航回上一页,而是只有弹出框 div 应该被隐藏。
如何使用 javascript 将此功能添加到浏览器后退按钮?
提前致谢
听起来您正在寻找 HTML5 History API。
可以在http://diveintohtml5.info/history.html找到关于它如何工作的非常好的介绍。
可以在http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html找到更多信息。
此外,您应该考虑为旧版浏览器填充该功能。这样做有很多选择,包括https://github.com/browserstate/history.js,其中包括一些示例代码,甚至还有一个工作演示(http://browserstate.github.io/history.js/demo/)。
您可以使用附加到 URL 的哈希值来获取历史更改。
index.html
-> 用户打开弹出框 ->index.html#popover
现在单击后退按钮将重定向回index.html
. 当然,这需要一些 JavaScript 代码。
出于明显的安全原因,您不能覆盖浏览器中的按钮操作,但您可以通过编程方式添加历史记录条目,即使当前页面在历史记录中显示两次,这样当用户单击后退按钮时,他/她会被重定向回同一页。使用真正简单的历史来实现这一目标。