启用FireBug时,matchMedia返回null

时间:2012-08-21 13:48:30

标签: javascript firefox firebug media-queries

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

3 个答案:

答案 0 :(得分:8)

似乎matchMedia()在隐藏(display:none)iframe中调用时在FF中返回null。 当我使用jQuery UI的标签小部件时,我遇到了这种行为,标签面板是iframe。我的解决方法是覆盖jQuery UI的.ui-tabs-hide CSS类:

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

答案 1 :(得分:3)

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 }

答案 2 :(得分:0)

我发现我必须这样做:

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; 
}