1

どのブラウザーに応じて、使用している IE のバージョンを見つけて、body タグにクラスを追加しようとしています。

私が持っているコードは

if (navigator.appName == "Microsoft Internet Explorer") {
//Set IE as true
ie = true;
//Create a user agent var
var ua = navigator.userAgent;
//Write a new regEx to find the version number
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
//If the regEx through the userAgent is not null
if (re.exec(ua) != null) {
    //Set the IE version
    ieVersion = parseInt(RegExp.$1);
}


}

else {
    ie = false;
}

function ieTag() {
    if (ie == true) {
        if (ieVersion == 7) {
            $('body').addClass('IE7');
        }
    }
    if (ie == true) {
        if (ieVersion == 8) {
            $('body').addClass('IE8');
        }
    }
    if (ie == true) {
        if (ieVersion == 9) {
            $('body').addClass('IE9');
        }
    }

}

そして私はこれを使って関数を呼び出しています

<script type="text/javascript">
    $(document).ready(function () {
        //IE Version Control
        ieTag();
    });
</script>

しかし、私は何らかの理由で IE 9 だけを使用しています。このスクリプトは以前に動作していたので、何が問題なのか本当にわかりません!!!

私もこのスクリプトを使用してみました

function ieTag() {
if (ie == true) {
    $('body').addClass('IE' + ieVersion);
}

}

しかし、まだIE9のみをピックアップしています

私は IE( と開発者ツールを使用してバージョンを変更しています (これらのスクリプトは両方とも以前に作業していました)。

4

5 に答える 5

8

これはおそらくあなたが探している答えではありませんが、最も簡単な解決策のように思えます:

<!--[if lt IE 7]>      <body class="ie6">    <![endif]-->
<!--[if IE 7]>         <body class="ie7">    <![endif]-->
<!--[if IE 8]>         <body class="ie8">    <![endif]-->
<!--[if IE 9]>         <body class="ie9">    <![endif]-->
<!--[if gt IE 9]>      <body class="ie10+">  <![endif]-->
<!--[if !IE]><!-->     <body>                <!--<![endif]-->

もちろん、 body タグが開始されるはずの HTML に追加されます。

于 2012-07-20T15:01:00.473 に答える
1

他のブラウザに影響を与えないように、条件付きコメントを使用できます。

<!--[if IE 6]>
<script>
$(document).ready(function(){
    $("body").addClass("ie-6");
});
</script>
<![endif]-->
<!--[if IE 7]>
<script>
$(document).ready(function(){
    $("body").addClass("ie-7");
});
</script>
<![endif]-->
<!--[if IE 8]>
<script>
$(document).ready(function(){
    $("body").addClass("ie-8");
});
</script>
<![endif]-->
<!--[if IE 9]>
<script>
$(document).ready(function(){
    $("body").addClass("ie-9");
});
</script>
<![endif]-->
于 2012-07-20T15:00:15.460 に答える
0

jQuery がある場合は、次のように ie クラスを body に追加できます

$(function(){
  if ($.browser.msie && $.browser.version == 8) {
    $('body').addClass('ie8');
  }
});
于 2013-04-25T13:37:20.873 に答える
0

問題の js が IE 7 と IE 8 で失敗した理由は、text/javascript ではなく application/javascript を使用してスクリプトを含めたという事実でした。

これは、最新のブラウザーのみがサポートするスクリプトを含める新しい方法であり、古いブラウザーはこの方法をサポートしていないため、IE 7 & 8 が失敗するためです。

于 2012-07-24T14:54:01.933 に答える
0

これには JavaScript は必要ありません。

<!--[if IE 9]>
  <body class='ie9'>
<![endif]-->
<!--[if IE 8]>
  <body class='ie8'>
<![endif]-->

など。通常のブラウザの場合は次のようにします。

<!--[if IE]><!-->
  <body class='normal'>
<!--<![endif]-->
于 2012-07-20T15:00:57.443 に答える