首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Safari忽略window.matchMedia

Safari忽略window.matchMedia
EN

Stack Overflow用户
提问于 2016-03-01 09:47:58
回答 4查看 8.2K关注 0票数 12

为了避免在移动设备中注入视频,我使用了window.matchMedia条件。CanIUse报告说,matchMedia将在Safari 9之后顺利工作(我正在对其进行测试),但是我的代码被完全忽略了:

代码语言:javascript
复制
if ( window.matchMedia("(min-width: 1025px").matches) {
   console.log('match');

   document.addEventListener("DOMContentLoaded", function() { initialiseMediaPlayer(); }, false);

   function initialiseMediaPlayer() {

      (stuff here...)

   }

}

这段代码在Chrome、Chrome、Firefox、IE和Edge上运行得很好。

有谁有过类似的问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-23 21:17:08

问题在于格式问题,奇怪的是,其他浏览器修复了这种行为,即使它的格式不正确。在1025 It之后缺少一个额外的结尾")“括号。尝试:

代码语言:javascript
复制
if ( window.matchMedia('(min-width:1025px)').matches) {
   console.log('match');

   document.addEventListener("DOMContentLoaded", function() { initialiseMediaPlayer(); }, false);

   function initialiseMediaPlayer() {

      (stuff here...)

   }

}
票数 17
EN

Stack Overflow用户

发布于 2018-12-15 00:17:51

对于其他可能遇到类似问题的人,我发现在safari中,您需要包括“screen and”以及宽度设置。其他浏览器似乎假设您讨论的是屏幕宽度,但safari需要指定它,至少在我的情况下是这样。所以应该是这样的:

代码语言:javascript
复制
if ( window.matchMedia('screen and (min-width:1025px)').matches) {}

在这种情况下

票数 10
EN

Stack Overflow用户

发布于 2020-05-26 16:10:43

在我的例子中,Safari使用的是.addListener(),而不是mediaQueryList上的addEventListener()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35719526

复制
相关文章

相似问题

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