仅使用 yepnope (modernizr.load) 将 selecvizr 加载到 <=IE8 的问题



我正试图通过yepnope (Modernizr.load)加载selectivizr,但测试命令有问题。目前我已经用rgba破解了它(因为它影响<=IE8),但它也影响旧的Opera和FF浏览器,所以不理想(看起来很垃圾)

代码如下:

  <script>
    yepnope.errorTimeout = 2000;
  Modernizr.load([
    {
      load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
      complete: function () {
        if ( !window.jQuery ) {
              Modernizr.load('scripts/jquery-1.6.1.min.js');
        }
      }
    },
        {
            test : Modernizr.mq(),
            nope : 'scripts/respond.min.js'
        },
        {
            test : Modernizr.rgba,
            nope : 'scripts/selectivizr-min.js'
        }
  ]);
  </script>

我知道在selectivizr网站上它说你应该像这样加载

<!--[if (gte IE 6)&(lte IE 8)]>
  <script type="text/javascript" src="selectivizr.js"></script>
<![endif]--> 

但是这不起作用,因为它在jquery完成之前被加载。

我也知道有一个ie!前缀(es)在yepnope,但我不能找出在哪里/如何包括这个文件。用一个5k的IE文件来加载一个4k的selectizr文件似乎是没有意义的。

感谢任何帮助/指导。

只需在URL的开头加上条件,后面跟着!:

<script>
  // yepnope 1.5.4
  yepnope.errorTimeout = 2000;
  Modernizr.load([
    {
      load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
      complete: function () {
        if ( !window.jQuery ) {
              Modernizr.load('scripts/jquery-1.6.1.min.js');
        }
      }
    },
        {
            test : Modernizr.mq(),
            nope : 'scripts/respond.min.js'
        },
        {
            load : 'iegt5!ielt9!scripts/selectivizr-min.js'
        }
  ]);
</script>

相关内容

  • 没有找到相关文章

最新更新