获取IE版本+将类添加到正文

Get IE Version + Add Class to body

本文关键字:添加 正文 IE 版本 获取      更新时间:2023-12-21

我正试图找到人们正在使用的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(和开发工具来更改版本(这两个脚本以前都使用过)

这可能不是您想要的答案,但它似乎是最简单的解决方案:

<!--[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]-->

当然是在HTML中添加的,您的body标记应该从这里开始。

您可以使用条件注释,这样它就不会影响其他浏览器。

<!--[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]-->

您不需要JavaScript。

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

等等。对于普通浏览器:

<!--[if IE]><!-->
  <body class='normal'>
<!--<![endif]-->

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

原因是不适用于application/javascript,因为这是一种新的包含脚本的方式,只有现代浏览器支持,而旧浏览器不支持这种方法,因此IE 7&8次失败。

如果你有jQuery,你可以像这个一样将ie类添加到主体中

$(function(){
  if ($.browser.msie && $.browser.version == 8) {
    $('body').addClass('ie8');
  }
});