gpt4 book ai didi

javascript - window.opener 为空(iOS 12.3.1 Safari 和 Chrome)

转载 作者:行者123 更新时间:2023-11-29 18:40:50 25 4
gpt4 key购买 nike

有一个 target=_blank 链接。链接页面中的脚本使用 window.opener,这已经工作多年,但现在它在 iOS 上被破坏了,因为 window.openernull。我能做什么?

有很多老问题(有些非常老)“window.opener is null”问题,还有一个Chromium bug那是在 2016 年关闭的。这似乎是一个随版本而来的问题。它有很多变体,但我看不到任何有效的解决方案。我的情况与一些较早的问题之间的主要区别:

  • 我没有跨域链接。
  • 我在 Safari 和 Chrome 中都看到了 null 值,而其他人在其中一个中看到了它,而在另一个中却看不到。
  • 我有 target=_blank,没有 window.open()

最佳答案

经过大量搜索,我发现了这个:

https://bugs.webkit.org/show_bug.cgi?id=190481

Summary: Experiment: target=_blank on anchors should imply rel=noopener

还有这个:

https://webkit.org/blog/8475/release-notes-for-safari-technology-preview-68/

Changed target="_blank" on anchors to imply rel="noopener"

从我从 iPhone 用户那里收到的投诉数量来看,我很确定这个突破性的变化已经出现在 Safari 的稳定版本中,即使那些标有“实验”和“预览”的链接是我能找到的唯一文档关于它。

Mozilla 已为 Firefox (https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Experimental_features#Security) 记录了类似的功能,但与 Apple 不同的是,他们的文档清楚且正确地将其标记为稳定版本中未启用的实验。

要恢复旧行为,您需要添加 rel="opener"<a>元素。 MDN 提到了这一点,而不是在 window.opener window.opener 我正在查看的页面停止工作,但在名为 Link types 的页面上,我只有在知道答案后才能找到它。他们将其标记为“实验性的,请勿在生产代码中使用”,但我认为我别无选择。

关于javascript - window.opener 为空(iOS 12.3.1 Safari 和 Chrome),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57060721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com