IEブラウザのmodeについて

2915 ワード

IEブラウザは、IE 8から取得したドキュメントモード(document mode)属性:documentModeを追加した.
一般的なドキュメント取得モードはvar mode=documentと書くことができます.documentMode;
各IEブラウザでの値は次の表の通りです.
ブラウザのバージョン
IE6
IE7
IE8
IE 8互換モード
IE9
IE 9互換モード
IE10
IE 10互換モード

undefined
undefined
8
7
9
7 or 8
10
7 or 8 or 10
 
 
 
それ以外に、IEの変なモード(Quirks Mode)の下で、document.documentMode==5.
以前、JavaScriptでブラウザのバージョン番号を取得したとき、次のような方法を使っていました.
//get IE version.

//if not IE ,return 0

function getIEVersion() {

    var ua = navigator.userAgent; 

    var version = ua.indexOf("MSIE "); 

    if (version < 0) {

        return 0;

    }

    return parseFloat(ua.substring(version + 5, ua.indexOf(";", version)));

}

その後、あるプロジェクトでは、上からブラウザバージョンを取得し、ページを設定したときに効果がなかったことがわかりました.これでやっと「ドキュメントモード」というものが見つかりました.
jspに次のコードを追加するとします.
<meta http-equiv="x-ua-compatible" content="IE=8;" />

そしてIE 7でこのページを開き、getheVersion()メソッドで取得した結果は依然として7であり、
しかし実際に取り込まれたdocumentModeは8であり,ページもIE 8モードで解析される.
 
そこで、あるネットユーザーはIEバージョンを判断する方法を提供した.
var ieMode=document.documentMode;

var isIE=!!window.ActiveXObject;

var isIE6=isIE&&!window.XMLHttpRequest;

var isIE7=isIE&&!isIE6&&!ieMode||ieMode==7;

var isIE8=isIE&&ieMode==8;

var isIE9=isIE&&ieMode==9;

var isIE10=isIE&&ieMode==10;

 
documentModeに関連付けられているcompatModeプロパティもあります.
compatModeプロパティの唯一の使命は、ブラウザがどのモードにあるかを示すことです.
       , document.compatMode    “CSS1Compat”

       , document.compatMode    “BackCompat”

 
 
参考資料:
http://yiminghe.iteye.com/blog/802021