首页 > 解决方案 > 如何在一台机器上且仅在 Chrome 中解决 history.go(-1) 故障

问题描述

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

给定一个带有来自不同域的 iFrame 的起始页。还有一个 FirstIFramedPage.html,其中包含指向不同域中的 SecondIFramedPage 的链接。当我单击带有 onClick="window.history.go(-1)" 的后退按钮时,它不起作用。
但是,它在我测试过的所有其他浏览器中以及在具有相同版本 Chrome 的另一台机器上确实具有预期的效果(将框架导航回 FirstIFramedPage.html)。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 机器上重现它。感谢您提供的任何帮助。

标签: google-chromehtml5-history

解决方案


看来这是在“站点隔离”的现场试验中引入的 chrome 错误。这些现场试验适用于 10% 的稳定版本(以及 90% 的 beta 版本)。通过在“站点隔离试用退出”中选择“退出”,我能够恢复到预期的行为。此设置位于:chrome://flags/#enable-site-per-process。

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


推荐阅读