首页 > 解决方案 > 参考错误:找不到变量:IntersectionObserver

问题描述

我正在尝试在 ios 13 上运行的 cordova 8.0.0 应用程序中使用 IntersectionObserver。当我通过 safari 检查我的应用程序时,我看到初始化错误:

ReferenceError: Can't find variable: IntersectionObserver

这表明 IntersectionObserver 不可用,我应该使用 polyfill。但!我读过很多帖子声称 iOS safari 12+ 原生支持 IntersectionObserver。而且我有点假设,cordova 将运行 nativly 可用的 WKWebView,所以它应该在没有 polyfill 的情况下工作,对吧?

我发现我在我的 Safari 实验功能中启用了 IntersectionObserver,所以也许我可以使用一个选项/标志来强制在我的应用程序中启用此功能?如果可能的话,我真的很想避免使用polyfill ..

感谢任何建议

标签: ios13intersection-observercordova-8.0.0

解决方案


自 12.2 起,iOS Safari 支持 IntersectionObserver API。然而,它通过“实验功能”得到支持并默认启用。我假设默认情况下在cordova下没有启用实验功能,到目前为止我还没有找到将其配置为启用的方法。

一个选项是使用 polyfill:https ://www.npmjs.com/package/intersection-observer 。我测试了自己,性能不够好,它使用setTimeoutMutationObserver观察启用所有选项的整个文档。


推荐阅读