如何使用javascript或jquery检测IE7并向div添加一个类

shi*_*hin 15 javascript jquery internet-explorer-7

有没有办法检测IE7?

我在IE8中的代码没有任何问题,但是IE7有问题.

所以我认为当浏览器是IE7通过javascript检测它时,我可以添加一个带有jquery的类.

我想改变

<div id="system">
Run Code Online (Sandbox Code Playgroud)

<div id="system" class="ie7">
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Ale*_*lex 50

如果你真的想通过使用javascript解决这个问题,你可能想检查这样的版本:

if (navigator.appVersion.indexOf("MSIE 7.") != -1)
    $('#system').addClass('ie7');
Run Code Online (Sandbox Code Playgroud)


小智 10

您可以使用IE条件注释通过javascript添加类,如下所示:

<!--[if IE 7]>
<script type="text/javascript">
$(document).ready(function() {
    $('#system').addClass('ie7');
});
</script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)


jAn*_*ndy 9

你可以用HTML做到这一点:

CSS

.ie7{
   padding: 0;
   color: red;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<!--[if IE 7 ]> <div id="system" class="ie7"> <![endif]-->
<!--[if (gt IE 7)|!(IE)]><!--> <div id="system"> <!--<![endif]-->
</div>
Run Code Online (Sandbox Code Playgroud)

如果在Internet Explorer 7中执行,这将创建divie7.所有其他浏览器和IE> 7将只创建没有类的div.

  • +1.我通常在一个地方执行此操作,在`<body class ="ie7">`上,并使用CSS包含选择器,如`body.ie7#system`,以避免在整个文档中重复条件注释. (3认同)

Tod*_*ses 9

要检测ie7只是使用

if($.browser.msie && parseFloat($.browser.version) < 8){
    //do other stuff
    return;
}
Run Code Online (Sandbox Code Playgroud)

用它做你想做的事:

if($.browser.msie && parseFloat($.browser.version) < 8){
    $('#system').addClass('ie7');
}
Run Code Online (Sandbox Code Playgroud)

  • 此时(2年后),`.browser`已从jQuery中删除. (13认同)