読者です 読者をやめる 読者になる 読者になる

みかづきブログ その3

3ヶ月つづけてみました。

@cc_on ステートメントをつかってIEでのみJScriptを実行する

@cc_on ステートメント

JavaScriptのコメントを

/*@cc_on 

@*/

という感じで書くと、コメントの中身がIEでのみJScriptとして評価されることを知りました。

なので、

var ieVersion = 0,
    jscriptVersion = 0;

/*@cc_on 
  jscriptVersion = @_jscript_version;
@*/

alert(jscriptVersion);

と書けば、jscriptVersion に JScriptのバージョンを代入することができます。
そして、JScriptのバージョンからIEのバージョンを割り出せるらしいです。

var isVersion = 0;
    jscriptVersion = 0;

/*@cc_on 
  jscriptVersion = @_jscript_version;
@*/

if (jscriptVersion) {
    switch (jscriptVersion) {
        case 11:
            // IE11では実行されない
            break;
        case 10:
            ieVersion = 10;
            break;
        case 9:
            ieVersion = 9;
            break;
        case 5.8:
            ieVersion = 8;
            break;
        case 7.7:
            // 正確には7以下らしい
            ieVersion = 7;
    }

    alert(ieVersion);
}

DEMO



IE10からHTMLの条件付きコメントがつかえなくなったので、
その代わりとしてピンポイントにIE10だけを対応したい時とかにつかえるのかもしれないし、つかえないのかもしれません。