阻止iframe中的导航更改父网站历史记录

时间:2017-09-07 15:18:44

标签: html google-chrome iframe browser

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

示例见:Handling history navigation inside iframe

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