解决 iframe 后退不是主页面后退(浏览器 history)问题

Posted dayin1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决 iframe 后退不是主页面后退(浏览器 history)问题相关的知识,希望对你有一定的参考价值。

 

前言:项目中的主页面里有 iframe,切换 iframe 的 src 地址之后,再点浏览器的回退之后,会导致 iframe 里面回退,而不是主页面回退。

问题

  浏览器机制的原因,在 iframe 导航变化后手动点击浏览器的后退按钮也依然只是后退 iframe 中的导航。

  但是我只想让父页面后退,并不想让 iframe 后退,但在改变了 iframe 的 src 后就达不到这样的效果。

解决

  不要修改 iframe.src,而是删除旧 iframe 元素,新建一个 iframe 元素并替换它,这样不会产生 history。
  直接 createElement,替换原来的 iframe。

 
我自己的办法是在当前页面记录点击更换iframe的次数,然后js返回的时候使用记录下的次数,当然,不如上面的办法聪明,看起来听笨的样子

以上是关于解决 iframe 后退不是主页面后退(浏览器 history)问题的主要内容,如果未能解决你的问题,请参考以下文章

使用iframe后 浏览器后退不能使用!如何解决!

用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?

嵌入 iframe 的页面 history 流程(浏览器后退)

在rails 5中单击浏览器的后退按钮后如何避免返回?

Android 自制浏览器 二 前进后退返回主页退出

覆盖ios后退按钮