我正在使用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
使用matchMedia,Respond包括matchMediapolyfill,但仍然不起作用。
那么,你是如何让Modernizr.mq
为IE 8工作的呢?
Modernizr在加载polyfill时不会更改其测试的值,因此如果浏览器不支持媒体查询,Modernizr.mq()
将返回false
,添加Respondjs polyfill不会改变这一点。
很抱歉。
话虽如此,如果你已经加载了polyfill,那么你已经在尽你所能支持旧浏览器了(Respondjs支持IE6/7/8),所以使用Modernizr标志并没有太多可以实现的,理论上,您不需要在polyfill就位的情况下使用Modernizr测试,因为所有浏览器都应该支持该功能。