views:

261

answers:

3

I'm using <!--[if IE 8]><![endif]--> for targeting IE8, but there's some JS that I want to load for all browsers EXCEPT IE8, what conditional comment should I use?

Edit: I wonder if this would work: <!--[if lte IE 8]><![endif]-->

Thanks

A: 

Try negation, [if !IE 8] perhaps?

meder
Then IE9 comes out and you will have rather interesting behavior. Of course at this point I wouldn't be surprised if IE displayed rainbows and unicorns instead of what I intended.
envalid
+3  A: 

I can think of a trick. Set a variable inside the IE conditional tag and include your JS code if that variable isn't set.

<script>
    var ie8 = false;
</script>

<!--[if IE 8]>
    <script>
        ie8 = true;
    </script>
<![endif]-->

<script>
    if (ie8 == false) {
        // any code here will not be executed by IE 8
        alert("Not IE 8!");
    }
</script>
Siddhartha Reddy
A: 

there's some JS that I want to load for all browsers EXCEPT IE8, what conditional comment should I use?

For something to appear in ‘other browsers’ that don't support CCs, you need a downlevel-revealed conditional comment.

<!--[if !IE 8]><!-->
    ....
<!--<![endif]-->

(this is slightly different to Microsoft's official syntax which is not valid HTML.)

“All browsers except IE8” is an unusual requirement, are you sure that's what you want? What about future versions of IE?

bobince