html - 防止在 iframe 中导航更改父站点历史记录

标签 html google-chrome iframe browser

我有一个网页,其中有一个包含一些管理功能的 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/

相关文章:

html - CSS flexitem 的 paddingleft 属性在页面刷新时不起作用

jquery - Owl Carousel 过渡效果在 Chrome 最新更新(V36)后不起作用

python - Python 中的 Selenium 预期条件适用于 Firefox,但不适用于 Chrome

javascript - 如何检测 iframe 何时想要更改

javascript - 将 Javascript 注入(inject) Iframe

jquery - 当 iframe 完全加载 jQuery 时如何删除 div

html - CSS 标题布局

javascript - 通过表单发送 anchor 标记值

html - 在 CSS 中更改边框高度?

jquery - 如何设置 "absolute text bottom"以便进一步的文本向上扩展?