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