Search code examples
javascriptinternet-explorerinternet-explorer-6conditional-commentsbrowser-feature-detection

/*@cc_on and IE6 detection


When researching JavaScript conditional comments for IE, I stumbled upon @cc_on. This seems to work. However, the wikipedia entry on conditional comments provides the following code for more robust IE detections, specifically IE6:

/*@cc_on
    @if (@_jscript_version > 5.7)
    document.write("You are using IE8+");

    @elif (@_jscript_version == 5.7 && window.XMLHttpRequest)
    document.write("You are using IE7");

    @elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
    document.write("You are using IE6");

    @elif (@_jscript_version == 5.5)
    document.write("You are using IE5.5");

    @else
    document.write("You are using IE5 or older");

@end

@*/

The issue is, I'm getting an "expected constant" javascript error on !window.XMLHttpRequest.

Clearly Wikipedia needs some help, and I need to get this working. Can anyone help me out?


Solution

  • Definitely no JS expert, but some searches found this for isolating IE6 from IE7 using jscript_version == 5.7:

    /*@cc_on
    if (@_jscript_version==5.6 ||
       (@_jscript_version==5.7 &&
          navigator.userAgent.toLowerCase().indexOf("msie 6.") != -1)) {
      //ie6 code
    }
    @*/
    

    Maybe it'll point you in the right direction.

    Source: http://sharovatov.wordpress.com/2009/06/03/efficient-ie-version-targeting/