3

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があることを知っています!yepnope のプレフィックスですが、このファイルをどこにどのように含めるかわかりません。IE ファイルが 4k の selectizr ファイルをロードする場合、5k を含めるのは無意味に思えます。

ヘルプ/ガイダンスをいただければ幸いです。

4

1 に答える 1

2

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>
于 2012-11-08T01:12:57.333 に答える