JavaScriptでIE8からIE11までを判定する

こんな感じだろうか。参考サイトのコードを私好みに改変して、ロジックについてはIE10とIE11を区別して判定したかったのでdocument.documentModeを使った処理の所を分割してみた程度かなあ。

var UserAgent = {
isIE: function() {
return UserAgint.isIE8 || UserAgent.isIE9 || UserAgent.isIE10;
},
isIE8: function() {
return typeof window.addEventListener == "undefined" && typeof document.getElementsByClassName == "undefined";
},
isIE9: function() {
return document.uniqueID && typeof window.matchMedia == "undefined";
},
isIE10: function() {
return document.uniqueID && document.documentMode === 10;
},
isIE11: function() {
return document.uniqueID && document.documentMode === 11;
}
};
switch (true) {
case UserAgent.isIE8():
console.log('ie8');
break;
case UserAgent.isIE9():
console.log('ie9');
break;
case UserAgent.isIE10():
console.log('ie10');
break;
case UserAgent.isIE11():
console.log('ie11');
break;
}

IE10とIE11っていろいろコード書いてきたけどそんなに挙動変わらなかったかな。だからそこまで区別する必要ないんだろうけど、IE11が出てもなお、ChromeとかFirefoxとかとJSの挙動が違う所があって対応が大変だ。IE12が出たら一週間くらいは検証と対応作業に入るように事前に動かないといけないなw

Thanks

w3g.jp

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA