让Modernizr.mq在IE 8中工作



我正在使用Modernizr.mq(http://modernizr.com/docs/#mq)在我的JS中运行检查,我认为Respondpolyfill会使Modernizr.mq在IE 8中工作,因为IE 8不支持媒体查询,但事实并非如此,请参阅IE 8中的测试页面:http://goo.gl/ND9sA,根据以下内容,bg应为橙色:

if (Modernizr.mq('screen and (min-width: 650px)')) {
     $('body').css('background', 'orange');
}

那么Respond是否只适用于CSS中指定的媒体查询而不适用于JS?我认为Modernizr.mq使用matchMediaRespond包括matchMediapolyfill,但仍然不起作用。

那么,你是如何让Modernizr.mq为IE 8工作的呢?

Modernizr在加载polyfill时不会更改其测试的值,因此如果浏览器不支持媒体查询,Modernizr.mq()将返回false,添加Respondjs polyfill不会改变这一点。

很抱歉。

话虽如此,如果你已经加载了polyfill,那么你已经在尽你所能支持旧浏览器了(Respondjs支持IE6/7/8),所以使用Modernizr标志并没有太多可以实现的,理论上,您不需要在polyfill就位的情况下使用Modernizr测试,因为所有浏览器都应该支持该功能。

最新更新