0

SelectivizrをIE7/8およびRequireJSで動作させる経験はありますか?

私はいつものように条件付きコメントを追加しようとしました、私はこれまで問題なく動作していました、私はローカルホストで実行しています。

これは、Selectivizrの前にjQueryを実行する必要があることと関係があると思います。これは、RequireJSが複雑にしているようです。

どんな助けでも素晴らしいでしょう、乾杯。

4

2 に答える 2

3

何らかの理由でyepnopeメソッドが機能しませんでしたが、modernizrの前であっても、最初のスクリプトとしてselectivizrが読み込まれます。これは、yepnopeが機能する非同期の方法と関係があるはずです。

私の場合、これを解決する方法は、htmlタグの前に条件付きコメントを追加することです。

<!--[if (gte IE 6)&(lte IE 8)]><html class="lt-ie9"><![endif]-->

次に、requirejsから呼び出す別の「ie-tidy.js」を取得しました。だから私の設定はこのように見えます(これはトリミングされています)

requirejs.config({

paths: {
    jquery: "../jquery-1.7.2.min",
    app: ".",
    selectivizr: '../selectivizr-min'
},
"shim": {
    "cookie": ["jquery"],
    "selectivizr": ["jquery"]
}
});
requirejs(['jquery', 'app/header', 'app/ie-tidy'], function ($) {
});

次に、ie-tidy.js内で、次のことを行います(他のie固有のスクリプトの中でも)

define(['jquery'], function ($) {
"use strict"

$(function() {
    if ($('html.lt-ie9').size()) {
           require(['jquery', 'selectivizr']);
        }
    });
});

これは私が望むように正確に機能し、jQueryの後にselectivizrをロードし、期待どおりにselectivizrクラスを適用します。助けてくれてありがとう@Dzulqarnain

于 2012-08-10T08:40:05.437 に答える
0

Selectivizr Web サイトによると、フロント ページにある表で定義されているライブラリの 1 つを指定する必要があります。

jQuery を定義した後は、YepNope などを使用して Selectivizr をいつでもロードできます。

例えば。

require.config({
    shim: {
        'yepnope' : {
            exports: 'yepnope'
        }
    },

    paths: {
        'jquery' : 'jquery-min',
        'yepnope' : 'yepnope-min'
    }
});

require(['jquery', 'yepnope'], function($){
    yepnope({
        load: ['iegt5!ielt9!selectivizr-min.js']
    });

    // do other stuff
});
于 2012-08-09T11:12:54.740 に答える