CSS 3D 変換の検出
Modernizrは CSS 3D 変換を検出できます。の真実性はModernizr.csstransforms3d
、ブラウザがそれらをサポートしているかどうかを教えてくれます。
上記のリンクを使用すると、Modernizr ビルドに含めるテストを選択でき、探しているオプションがそこで利用できます。
IE を具体的に検出する
または、 user356990が回答したように、IE と IE だけを検索する場合は、条件付きコメントを使用できます。グローバル変数を作成する代わりに、HTML5 Boilerplate の<html>
条件付きコメント トリックを使用してクラスを割り当てることができます。
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
すでに jQuery が初期化されている場合は、 で確認できます$('html').hasClass('lt-ie9')
。条件付きで jQuery 1.x または 2.x をロードできるように、使用している IE のバージョンを確認する必要がある場合は、次のようにします。
myChecks.ltIE9 = (function(){
var htmlElemClasses = document.querySelector('html').className.split(' ');
if (!htmlElemClasses){return false;}
for (var i = 0; i < htmlElemClasses.length; i += 1 ){
var klass = htmlElemClasses[i];
if (klass === 'lt-ie9'){
return true;
}
}
return false;
}());
注: IE 条件付きコメントは、IE9 までのみサポートされています。IE10 以降、Microsoft はブラウザー検出ではなく機能検出の使用を推奨しています。
どちらの方法を選択しても、次にテストします
if ( myChecks.ltIE9 || Modernizr.csstransforms3d ){
// iframe or flash fallback
}
||
もちろん、それを文字通りに受け取らないでください。