【问题标题】:Prevent navigation in iframe change parent sites history阻止 iframe 更改父站点历史记录中的导航
【发布时间】:2018-02-16 09:43:29
【问题描述】:

我有一个网页,其中有一个包含一些管理功能的 iframe。

现在,当我在 iframe 中导航(GET 和 POST 请求)时,这些操作会在浏览器历史记录中创建条目。因此,现在当我想访问上一页的父页面时,它不会发生,因为浏览器 (Chrome) 开始返回 iframe 历史记录。

那么有没有办法克服这种行为?我希望浏览器导航在主页上工作 - 而不是在 iframe 中。

【问题讨论】:

    标签: html google-chrome iframe browser


    【解决方案1】:

    我认为没有办法阻止浏览器维护历史记录,但是对于同源内容,您可以操纵历史记录的内容。

    基本上您可以监控事件popstate 并使用history.replaceState() 推送您自己的历史记录,该历史记录应该会自动替换浏览器记录的真实历史记录。请注意,您无法在没有导航的情况下从历史记录中删除项目,但您只能将一项替换为另一项。

    例如,请参阅:Handling history navigation inside iframe

    如果您不想操纵历史记录并且需要阻止浏览器进行所有历史记录维护,则应仅使用XHR/ajax 而不是普通的链接和表单。

    【讨论】:

      猜你喜欢
      • 2019-04-17
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 2017-12-10
      相关资源
      最近更新 更多