【发布时间】:2021-11-16 12:37:21
【问题描述】:
我正在使用 nextjs 开发一个网络应用程序。除了 Mac 上的 Safari 之外,所有浏览器都可以正常运行。这是我打开开发者控制台时得到的:
只有在发生这种情况的 Mac 上,它仍然可以在 iPhone 上正常运行。有谁知道为什么会这样?
【问题讨论】:
标签: javascript ios safari next.js
我正在使用 nextjs 开发一个网络应用程序。除了 Mac 上的 Safari 之外,所有浏览器都可以正常运行。这是我打开开发者控制台时得到的:
只有在发生这种情况的 Mac 上,它仍然可以在 iPhone 上正常运行。有谁知道为什么会这样?
【问题讨论】:
标签: javascript ios safari next.js
IntersectionObserver API 在 Safari v3.1-12 上不可用。您或您的任何库都在使用此 API。要使其在旧版本的 Safari 上运行,您需要对其进行 polyfill。像这样的东西应该可以为 Safari v6+ 工作:
// pages/_app.jsx
import Script from 'next/script';
const App = ({ Component, pageProps }) => (
<>
<Script
src="https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserver"
strategy="beforeInteractive"
/>
<Component {...pageProps} />
</>
);
export default App;
参考资料:
【讨论】: