0

<!--[if (IE 6)|(IE 7)]>訪問者が IE6 または IE7 を使用している場合、特定の JavaScript を実行する必要があるため、.js ファイル内のような HTML コンディショナル タグを使用する方法はありますか?

ありがとう

4

4 に答える 4

3

私はマークアップでこのようなことをします...

<!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
}
于 2013-06-28T16:01:12.797 に答える
1

マークアップで条件付きコメントを使用し、その結果を使用して 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...
于 2013-06-28T16:04:31.130 に答える
0

個別の JS ファイルが最適なオプションです。

ただし、navigator.userAgent を使用できます。

var userAgent = navigator.userAgent;

これにより、ユーザーがページを表示するために使用しているブラウザーを特定し、JS に組み込まれている if ステートメントを使用できます。

于 2013-06-28T15:10:50.397 に答える
-1

ユーザーnavigator.userAgentが使用しているブラウザを確認します。

推奨される読書: http://api.jquery.com/jQuery.support/

于 2013-06-28T15:08:48.873 に答える