Safari (iOS) 在禁用 IntersectionObserver 后,于 beta 8 版本在 Discourse 实例上显示空白页

最新构建版本 (2.7.0.beta8 f002c58a30) 在 iOS Safari 移动设备上显示为空白网页。

在 Meta 实例上也可复现。

我运行的旧版本仍然正常。

编辑:解决方案在此 :grinning_face:

在我的实例上也无法复现。

奇怪

已重启并清除了缓存等。

iOS 14.4 - iPhone 12 Pro。
iPhone 11 上也是相同版本和相同问题。

希望这里能获得更多反馈。

在 14.5.1 系统下的 Xs 设备上无法复现此问题。

您是否启用了任何内容拦截器?

我已检查过,它们都已关闭。

我刚更新到最新的 iOS 版本,问题依旧。

我会继续排查。

无法复现:
iPhone 6s iOS 13.7
iPhone 7 Plus iOS 14.4.2
iPhone SE iOS 14.4.2

如果您有多台设备出现该问题,则可能是网络路径存在故障。

该问题是否在 Wi-Fi 和移动网络下均会出现?

如果禁用 JavaScript,我会看到一个非常简化的 Meta 版本。重新启用后,页面会刷新并显示为空白。

我已尝试使用 VPN、蜂窝网络和 Wi-Fi。

设备:iPhone 11 Pro,iOS 14.4;iPhone 12 Pro,iOS 14.5.1。

在 Chrome 或 Brave 浏览器中没有出现问题。

非常希望有人能复现此问题。

我有一块板子运行的是最新的 beta8,无法工作(包括 Meta)。
有两块板子运行的是 beta7,它们工作正常。

我可以将其中一块从 beta7 升级到 beta8,看看是否也会出现无法工作的问题。

你能尝试在安全模式下使用 Meta 吗?对你有效吗?

https://meta.discourse.org/safe-mode

安全模式页面已正常工作,但在安全模式下仍显示相同的空白页面。

在 Safari 中刷新任意页面时,发现了以下日志报错:

ReferenceError: Can't find variable: IntersectionObserver
Url: https://domain.com/assets/ember_jquery-36a23101c869ab0dc53fc908de69adb785731593573d32bdeef416acc1076ef4.js
Line: 26
Column: 28177
Window Location: https://domain.com/login

@blake / @pmusaraj,我以为这在 iOS 14 上不是问题。我们是否应该回退这个 IE polyfill 的移除?看起来 iOS 有时仍然需要它。

Caniuse 显示,IntersectionObserver API 于 2019 年 3 月在 iOS 12.2 中添加。

如果这些测试也在 iOS 上进行过,那么这也证明了它应该可以工作——iOS 上的所有浏览器在底层都使用 WebKit。

@MarcP,您是否偶然在“设置 > Safari > 高级 > 实验性功能”中禁用了 IntersectionObserver?该功能默认应处于启用状态。(参见 Safari Technology Preview Release 71 说明

啊……找到了!在测试并尝试所有这些修复方案时,论坛某处有人建议,如果 Safari 页面加载缓慢或变空白,请禁用所有实验性功能。现在问题已解决。

再次感谢本社区成员的快速反应。

我刚才遇到一位论坛成员有同样的问题。他们曾禁用过实验性功能,但不知道是如何或何时禁用的……不过这个帖子帮他们恢复了功能,所以感谢这个主题!