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

为此,您不需要 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 回答
0

问题中的 js 在 IE 7 和 IE 8 中失败的原因是我使用 application/javascript 而不是 text/javascript 包含了脚本,

原因是不适用于应用程序/javascript,因为这是一种包含仅现代浏览器支持的脚本的新方法,而旧浏览器不支持此方法,因此 IE 7 和 8 失败。

于 2012-07-24T14:54:01.933 回答
0

如果你有 jQuery,你可以像这样将 ie 类添加到 body

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