Vis*_*Pal 5 html javascript firefox
考虑以下情况:
\n注意:我们\xe2\x80\x99t无法控制网站C,并且可以\xe2\x80\x99t控制它们\xe2\x80\x99如何重定向回网站B。\n而且这种情况仅发生在Firefox/Safari上。在 Chrome 上,我们能够在重定向后获取原始的 opener 引用。
\n如果网站 C 使用 rel=noopener 进行重定向,则 window.opener 应为 null(来自 MDN 的参考)。我\xe2\x80\x99m 无法理解在这种情况下 window.opener 可以是当前窗口对象以及为什么它发生在 Firefox/Safari 而不是 Chrome 上?除了网站 C 之外,我们还能在其他地方做些什么来防止这种情况发生吗?
\n小智 4
这在 Firefox 和 Safari 中是可能的,当您添加 target 时, window.opener 可以是当前窗口_self。如果这样做window.open('someurl', '_self'),则 window.opener 将是当前窗口,并将在同一选项卡而不是新选项卡中打开。这只发生在 Safari 和 Firefox 中(根据我的观察)。所有基于 chromium 的浏览器在任何情况下都不会更改原始的窗口打开器。
我不知道safari和firefox这样处理的确切原因我试图找到原因但找不到。
我曾经遇到过这个问题,我们所做的解决方案是要求网站 C 使用window.location.replace或window.location.href重定向回网站 B,以便他们在同一选项卡中打开网站 B。