0

LABjs に問題があります。すべてのスクリプトをロードしますが、IE で使用すると完全に機能しなくなります。

 $LAB
     .script('https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js').wait()
     .script('https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js')

そして、条件文を追加すると

<!--[if IE ]>
     <script type="text/javascript" src="somescript.js"></script>
<![endif]-->

これは失敗します。これを LABjs に含めるにはどうすればよいですか?

ありがとう。

4

1 に答える 1

1

最初に強く言っておきますが、これ以上 IE のみのスクリプトを実行するべきではありません。しかし、あなたが本当に絶対にそうしなければならない場合、そしてその悪い習慣のために手首を数回平手打ちした後...

(function(){

   // From: http://james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/
   var ie_version=(function(){var c,a=3,b=document.createElement('div'),d=b.getElementsByTagName('i');while(b.innerHTML='<!--[if gt IE '+(++a)+']><i></i><![endif]-->',d[0]);return a>4?a:c})();

   $LAB.setOptions({AlwaysPreserveOrder:true})
   .script('https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
   .script('https:///ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js')
   .script(ie_version ? 'somescript.js' : '')
})();

コードのie_versionスニペットはhttp://james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/から取得され、動的に作成された IE 条件付きコメントを使用して IE バージョンを決定します。

注:投稿した内容に基づいて、「somescript.js」はjqueryおよびjquery-uiスクリプトの後に厳密に実行する必要があると想定しています。そうでない場合は、必要に応じてチェーン内の別の位置に配置すること$LABができます。また、チェーン内の を取り出して、必要な場所でのみsetOptions({AlwaysPreserveOrder:true})使用することもできます。wait()

于 2012-08-25T16:31:48.580 に答える