3

プロジェクトで Require JS を使用しています。これは、サイト全体とすべてのブラウザーに関連する jQuery とその他の JavaScript ファイルをロードしています。

ただし、Internet Explorer 7および8で条件付きjQueryを使用する必要があります。これをページの先頭に配置しようとしましたが、スクリプトがjQueryを見つけられないようです。これはjQuery の前に読み込まれます。

 <script data-main="/@ViewBag.ScriptsFolder/main" src="/scripts/require.js" type="text/javascript"></script>
    <!--[if (gte IE 6)&(lte IE 8)]>
        <script type="text/javascript" src="/Scripts/ie.js"></script>
    <![endif]-->

これを修正する方法はありますか?また、この方法で Selectivizr をロードしようとしていますが、同じ問題のために機能していません。

ありがとう

4

1 に答える 1

16

要素で条件付き IE 固有のクラスを使用しhtml、それをチェックして、既存のmainスクリプト内に IE の依存関係を読み込むことができます。したがって、ドキュメントの上部は次のようになります。

<!--[if lt IE 7]> <html class="ie lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html class="ie lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html class="ie lt-ie9"> <![endif]-->
<!--[if gt IE 8]> <html class="ie"> <![endif]-->
<html> 

そして、内部main.jsでは、次を使用できます。

if ($('html.lt-ie9').size()) {
    require(['/Scripts/ie'], function(ieScript) {
        // ... do stuff
    });
}

require.js は単一のdata-main属性を検索して「エントリ ポイント」を指定するため、説明した方法を使用することはできません。その後の呼び出しrequireは Javascript で行う必要があります。

于 2012-08-07T13:13:32.610 に答える