【问题标题】:Since iOS 12.4 iframe can't change top url由于 iOS 12.4 iframe 无法更改顶部 url
【发布时间】:2019-12-27 09:57:31
【问题描述】:

我认为从 iOS 12.4 开始,iPhone 上的浏览​​器不再能够从 iframe 重定向顶部框架。 你知道有什么改变吗?

顶部框架(域 1)index.htm 中的代码

<iframe src='https://www.domain2.com/test.htm' id='blubb' ></iframe>

来自 iframe(域 2)test.htm 的代码

<script> top.location.href="https://www.domain1.com/somefile.htm";</script>

不幸的是,我看不到控制台/错误消息,因为我没有 Mac。但是重定向没有完成。在其他浏览器/操作系统上它可以正常工作。 有什么想法吗?

【问题讨论】:

  • 将 sandbox='allow-top-navigation allow-scripts' 添加到 iframe 可以解决问题,但这对我没有帮助,因为我无法更改所有地方的顶部框架源

标签: javascript ios iphone redirect iframe


【解决方案1】:

呃,请原谅我将此作为答案发布 - 我宁愿将其添加为评论,但我没有评论所需的必要 50 业力。

我在 iOS 12.4 中遇到了同样的问题,我认为这与 WebKit 中的一些安全更改有关。

我收到以下错误:“试图导航顶级窗口的框架是跨域的,用户从未与框架进行过交互。” 我相信它源自 WebKit,如下所示:https://github.com/WebKit/webkit/blob/master/Source/WebCore/dom/Document.cpp

所以我认为一个可能的解决方案是在 iframe 内设置一个用户单击按钮以允许导航。

另外,您提到您在装有 iOS 12.4 的手机上的其他浏览器上尝试过此功能,因此它在 Chrome 中适合您?

【讨论】:

    【解决方案2】:

    谢谢。与此同时,我在同事的 Mac 上发现了同样的问题,我们通过要求用户单击按钮来“解决”问题。不好,但唯一的解决方案。我想知道找不到有关此更改的任何信息/更改日志。但最好不要完全孤独:-) 是的,它也发生在 Chrome(iOS 应用程序)中,但同时我也了解到 iOS 浏览器共享/被 Apple 渲染引擎监禁。

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2013-01-13
      • 2011-10-21
      • 2015-11-12
      • 2015-08-04
      • 2013-02-11
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      相关资源
      最近更新 更多