如何解决 Next.js 在 IE10 中会出现 `Object doesn't support property or method 'matches'` 的问题

阅读时长 3 分钟读完

问题描述

在使用 Next.js 开发前端应用时,当我们在 IE10 中打开页面时,可能会出现以下错误提示:

这是由于 IE10 不支持 Element.matches() 方法导致的。在 Next.js 中,该方法被用于检查路由是否匹配,因此会导致页面无法正常加载。

解决方案

为了解决这个问题,我们需要在代码中使用 polyfill 来提供 Element.matches() 方法的支持。我们可以使用 polyfill.io 提供的服务来加载所需的 polyfill。

首先,在你的项目中安装 next-polyfill

然后,在你的 Next.js 应用程序的 next.config.js 文件中添加以下内容:

-- -------------------- ---- -------
----- ------------- - -------------------------

-------------- - ---------------
  ---------- -
    -- -------- --------
    -- ------------------------------
    --------- -
      ---------------------------
    -
  -
---

这将在你的应用程序中加载 Element.prototype.matches() 方法的 polyfill 。

示例代码

-- -------------------- ---- -------
-- --------------

------ ----- ---- --------

----- --------- - -- -- -
  ----- ----------- - -- -- -
    ------------- ---------
  --

  ------ -
    -----
      ----------- -------
      ------- ----------------------------------
    ------
  --
--

------ ------- ----------
-- -------------------- ---- -------
-- --------------

----- ------------- - -------------------------

-------------- - ---------------
  ---------- -
    --------- -
      ---------------------------
    -
  -
---

总结

在 Next.js 应用程序中使用 Element.matches() 方法时,我们需要提供一个 polyfill,以便在 IE10 中正常工作。我们可以使用 polyfill.io 提供的服务来加载所需的 polyfill。

以上是本文所介绍的解决方案,希望对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6505428a95b1f8cacd1c4805

纠错
反馈