如何解决一台机器上的 history.go(-1) 故障,并且仅在 Chrome 中

How to troubleshoot a history.go(-1) failure on one machine and only in Chrome

history.go(-1) 在来自不同域的 iFrame 中没有效果,但在另一台机器上的 chrome 中有效。

给定一个包含来自不同域的 iFrame 的起始页。 FirstIFramedPage.html 和 link 到不同域中的 SecondIFramedPage。 当我使用 onClick="window.history.go(-1)" 单击后退按钮时,它没有任何效果。
但是,它确实在我测试过的所有其他浏览器和另一台具有相同版本 Chrome。 chrome:版本 66.0.3359.181(正式版)(64 位)

我这里有一个完整的示例:https://github.com/jimlesch/ChromeIFrameHistoryFail readme.txt 有关于如何重现此问题的说明。

我尝试过的:

  1. 运行 处于隐身模式。
  2. 禁用扩展。
  3. 使用来自同一域的 iframe(按预期工作,但在我的情况下不可能)
  4. 正在卸载并重新安装 Chrome。
  5. 正在安装 Chrome Beta 以查看其行为是否不同(我在 5 上仍然失败)
  6. 正在查看 chrome://tracing(无法正反面)

我正在寻求有关如何进一步隔离此问题的帮助,因为我无法在具有相同版本 chrome 的另一台 windows 10 机器上重现它。感谢您提供的任何帮助。

这似乎是 chrome 在 "Site isolation" 的现场试验中引入的错误。这些现场试验应用于 10% 的稳定版本(以及 90% 的 beta 版本)。 通过在 "Site isolation trial opt-out" 中选择 "opt out",我能够恢复到预期的行为。此设置位于:chrome://flags/#enable-site-per-process.

另请参阅此重复错误以获得更丰富的讨论:bugs.chromium.org/p/chromium/issues/detail?id=845923