views:

55

answers:

6

Is there any way to detect IE7?

I don't have any problems with my codes in IE8, but I have a problem with IE7.

So what I thought is that I can add a class with jquery when a browser is IE7 detecting it by javascript.

I want to change from

<div id="system">

to

<div id="system" class="ie7">

Thanks in advance.

+1  A: 

You could use an IE conditional comment to add the class via javascript, something like this:

<!--[if IE 7]>
<script type="text/javascript">
$(document).ready(function() {
    $('#system').addClass('ie7');
});
</script>
<![endif]-->
Jimmy
Aha! thanks. Silly me.
shin
+3  A: 

You can do it just with HTML:

css

.ie7{
   padding: 0;
   color: red;
}

html

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

This creates the div with the class ie7 if executed in internet explorer 7. All other browser and IE > 7 would just create that div without the class.

jAndy
I think he is wanting a jQuery solution. However, your solution is a better way to go since a user could have javascript disabled.
Todd Moses
+1. I usually do this in one place, on `<body class="ie7">`, and use a CSS containment selector like `body.ie7 #system`, to avoid having to repeat conditional comments throughout the document.
bobince
+2  A: 

Try this:

<!--[if IE 7]>
<script type="text/javascript">
  $('#system').addClass('ie7');
</script>
<![endif]-->
Enlightened
A: 

if you really want to solve this by using javascript you might want to check the version like this:

if (navigator.appVersion.indexOf("MSIE 7.") != -1)
    $('#system').addClass('ie7');
Vash
A: 

To detect ie7 just use

if($.browser.msie && parseFloat($.browser.version) < 7){
//do other stuff
return;
}

To do what you want with it just:

if($.browser.msie && parseFloat($.browser.version) < 7){
    $('#system').addClass('ie7');
    }
Todd Moses
Do you mean <8 ?
shin
yes, sorry I did mean <8
Todd Moses