首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Safari浏览器中用于matchMedia的addEventListener

Safari浏览器中用于matchMedia的addEventListener
EN

Stack Overflow用户
提问于 2020-07-02 18:13:52
回答 1查看 539关注 0票数 0

我没有带safari浏览器的iOS,所以我无法正确测试它。

下面是我的代码:

代码语言:javascript
复制
if (window && window.matchMedia('(prefers-color-scheme: dark)')) {
        window.matchMedia('(prefers-color-scheme: dark)')
          .addEventListener('change', (mediaQuery) => {
            console.log('theme', mediaQuery);
            // ....
          });
      }

使用该代码,我得到了错误(在在线测试工具中):window.matchMedia('(prefers-color-scheme: dark)').addEventListener is not a function

如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2020-09-07 19:59:23

规范中只提到了addListener (https://drafts.csswg.org/cssom-view/#the-mediaquerylist-interface),这也是safari包含的唯一函数。

这也有最广泛的支持,见https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener

所以你可能会变成:

代码语言:javascript
复制
if (window && window.matchMedia('(prefers-color-scheme: dark)')) {
        window.matchMedia('(prefers-color-scheme: dark)')
          .addListener((mediaQuery) => {
            console.log('theme', mediaQuery);
            // ....
          });
      }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62693995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档