【问题标题】:matchMedia returns null when the FireBug is enabled启用 FireBug 时 matchMedia 返回 null
【发布时间】:2012-08-21 13:48:29
【问题描述】:

我的网络应用程序使用matchMedia。有时无论传递什么值,调用此函数都会返回null。这很奇怪,但并不总是发生(可能是 3 次中的 1 次),并且仅在打开 FireBug 的 FireFox 中发生。有人遇到过这样的问题吗?

【问题讨论】:

    标签: javascript firefox firebug media-queries


    【解决方案1】:

    似乎 matchMedia() 在隐藏(显示:无)iframe 中调用时在 FF 中返回 null。 我在使用 jQuery UI 的选项卡小部件时遇到了这种行为,并且选项卡面板是 iframe。我的解决方法是覆盖 jQuery UI 的 .ui-tabs-hide CSS 类:

    .ui-tabs-hide { display: block !important; position: absolute; left: -99999px; }
    

    【讨论】:

    • 这是我遇到的最奇怪的错误之一!我们在 iFrame 顶部使用了一个绝对定位的 div 来隐藏其内容。
    • 100 多个赞给你
    【解决方案2】:

    Matchmedia 在隐藏 iframe 的情况下返回 null,您可以在访问 window.matchmedia 之前使用此代码

    if(typeof window.matchMedia == 'function' && window.matchMedia!=undefined && window.matchMedia('screen and (max-width: 650px)')!=null){ //Your code goes here }

    【讨论】:

      【解决方案3】:

      我发现我必须这样做:

      if (w.matchMedia == null ){ 
          format = uformat; 
      } else if(w.matchMedia(qo) != null) {
          if (w.matchMedia(qo).matches || w.matchMedia(q).matches ) {  format = mformat; }
      } else {
          format = uformat; 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-11
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多