我有一个网页,其中有一个包含一些管理功能的 iframe。
现在,当我在 iframe 中导航(GET 和 POST 请求)时,这些操作会在浏览器历史记录中创建条目。所以现在当我想进入上一页的父页面时,它不会发生,因为浏览器(Chrome)开始返回 iframe 历史记录。
那么有没有办法克服这种行为?我希望浏览器导航在主页上工作 - 而不是在 iframe 中。
最佳答案
我认为没有办法阻止浏览器维护历史记录,但是对于同源内容,您可以操纵历史记录的内容。
基本上你可以监控事件 popstate
并使用 history.replaceState()
推送您自己的历史记录,该历史记录应自动替换浏览器记录的真实历史记录。请注意,您无法在没有导航的情况下从历史记录中删除项目,但您只能将一项替换为另一项。
例如,请参见:Handling history navigation inside iframe
如果您不想操作历史记录并需要阻止浏览器维护所有历史记录,则应仅使用 XHR/ajax而不是正常的链接和表格。
关于html - 防止在 iframe 中导航更改父站点历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099961/