【问题标题】:Changing the browser back button functionality [duplicate]更改浏览器后退按钮功能[重复]
【发布时间】:2013-04-29 12:44:14
【问题描述】:

用例: 我有一个网页,其中显示了某些功能的弹出框。弹出框可以被认为是一个 HTML div,当点击相应的按钮时显示。单击取消按钮/单击浏览器后退按钮时再次隐藏。

问题: 考虑显示弹出窗口。当用户单击后退按钮时,他不应该被导航回上一页,而是只有弹出框 div 应该被隐藏。

如何使用 javascript 将此功能添加到浏览器的后退按钮?

提前致谢

【问题讨论】:

    标签: javascript html back-button-control


    【解决方案1】:

    听起来您正在寻找 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/)。

    【讨论】:

      【解决方案2】:

      出于明显的安全原因,您不能覆盖浏览器中的按钮操作,但您可以通过编程方式添加历史记录条目,即使当前页面在历史记录中显示两次,这样当用户单击后退按钮时,他/她会被重定向返回同一页面。使用Really Simple History 来实现。

      【讨论】:

        【解决方案3】:

        您可以使用附加到 URL 的哈希值来获取历史更改。

        index.html -> 用户打开弹窗 -> index.html#popover

        现在单击返回按钮将重定向回index.html。当然,这需要一些 JavaScript 代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-30
          • 2018-06-09
          • 1970-01-01
          • 2011-04-06
          • 2014-07-24
          • 1970-01-01
          • 2015-08-12
          • 2021-03-24
          相关资源
          最近更新 更多