<!--[if (IE 6)|(IE 7)]>
訪問者が IE6 または IE7 を使用している場合、特定の JavaScript を実行する必要があるため、.js ファイル内のような HTML コンディショナル タグを使用する方法はありますか?
ありがとう
<!--[if (IE 6)|(IE 7)]>
訪問者が IE6 または IE7 を使用している場合、特定の JavaScript を実行する必要があるため、.js ファイル内のような HTML コンディショナル タグを使用する方法はありますか?
ありがとう
私はマークアップでこのようなことをします...
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class=""> <!--<![endif]-->
<head>
次に、JS で、適切なボディ スタイルを確認できます。
if (html tag has class lt-ie8) {
// we're in ie7 and below land
}
マークアップで条件付きコメントを使用し、その結果を使用して js で条件付き変数を作成できます。これでドキュメントを開始します。
<!DOCTYPE HTML>
<!--[if lte IE 7]><html lang="en" class="ieDetect ie7Detect"><![endif]-->
<!--[if IE 8]><html lang="en" class="ieDetect ie8Detect"><![endif]-->
<!--[if IE 9]><html lang="en" class="ieDetect ie9Detect"><![endif]-->
<!--[if !IE]>--><html lang="en"><!--<![endif]-->
私は通常、これに jQuery を使用してクラスをチェックすることを好みます。
var ieDetect = $('.ieDetect').length
, ie7Detect = $('.ie7Detect').length
, ie8Detect = $('.ie8Detect').length
, ie9Detect = $('.ie9Detect').length
;
if (ieDetect){
// do stuff with IE
}
JS のみを使用する場合は、クラス フェッチ関数を使用して上記のマークアップを保持するか、汎用の ieDetect クラスを使用せずに ie7Detect (および 8,9) を html タグの ID として使用することができます。
var ie7Detect = document.getElementById("ie7Detect").length
, etc...
個別の JS ファイルが最適なオプションです。
ただし、navigator.userAgent を使用できます。
var userAgent = navigator.userAgent;
これにより、ユーザーがページを表示するために使用しているブラウザーを特定し、JS に組み込まれている if ステートメントを使用できます。
ユーザーnavigator.userAgent
が使用しているブラウザを確認します。