为什么我无法使用modernizr在IE9中检测媒体查询

时间:2013-04-25 09:02:15

标签: javascript cross-browser media-queries modernizr

我在浏览器中搜索了对CSS3媒体查询的支持,并且IE9 +支持它,http://caniuse.com/css-mediaqueries,但当我使用 Modernizr 来检测它时,事实证明,ie7-ie9不支持它,ie10支持它。 我所做的是:

  1. 生成自定义modernizr js:http://modernizr.com/download/#-mq-teststyles-load

  2. html代码:下面是我在html头中的代码,我想检测浏览器是否支持min-width媒体查询使用,如果支持,添加support.js,如果不支持,则包括nosupport。 JS

    <script src="modernizr.custom.03829.js" type="text/javascript"></script>
    <script>
        Modernizr.load({
            test: Modernizr.mq('(min-width: 0px)'),
            yep: 'support.js',
            nope: 'nosupport.js'
        });
    </script>
    
  3. 在support.js:alert(“support”);

  4. 在nonosupport.js:alert(“not support”);
  5. 结果:ie7-ie9警告“不支持”,在ie10中,警告“支持”。我认为ie9也应警惕“支持”,对吗? 我的代码有问题吗?

    另一个奇怪的事情是,如果我使用http://modernizr.com/docs/#mq中的示例用法 :

    Modernizr.mq('only screen and (max-width: 768px)')  // true
    

    Chrom,firefox和IE7-10会警告“不支持”,我认为现代浏览器应提醒“支持”。为什么呢?

1 个答案:

答案 0 :(得分:1)

关于你的第一个问题 - 我无法复制。 Modernizr.mq('(min-width: 0px)')对我来说在IE 9中返回true。检查F12工具中的文档模式,看看是否回退到非标准模式。

在你的第二个,浏览器的现代性与它无关,它将返回真实。 Modernizr.mq测试浏览器是否与媒体查询匹配。如果为false,则表示浏览器窗口大于768像素。