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

时间:2023-12-25 19:03:13

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

问题

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

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

解决

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