Detect IE version in Javascript

Posted by Chad Decker on Stack Overflow See other posts from Stack Overflow or by Chad Decker
Published on 2012-06-09T22:13:23Z Indexed on 2012/06/09 22:40 UTC
Read the original article Hit count: 307

I want to bounce users of our web site to an error page if they're using a version of Internet Explorer prior to v9. It's just not worth our time and money to support IE pre-v9. Users of all other non-IE browsers are fine and shouldn't be bounced. Here's the proposed code:

if(navigator.appName.indexOf("Internet Explorer")!=-1){     //yeah, he's using IE
    var badBrowser=(
        navigator.appVersion.indexOf("MSIE 9")==-1 &&   //v9 is ok
        navigator.appVersion.indexOf("MSIE 1")==-1  //v10, 11, 12, etc. is fine too
    );

    if(badBrowser){
        // navigate to error page
    }
}

Will this code do the trick?

To head off a few comments that will probably be coming my way:

[1] Yes, I know that users can forge their useragent string. I'm not concerned.

[2] Yes, I know that programming pros prefer sniffing out feature-support instead of browser-type but I don't feel this approach makes sense in this case. I already know that all (relevant) non-IE browsers support the features that I need and that all pre-v9 IE browsers don't. Checking feature by feature throughout the site would be a waste.

[3] Yes, I know that someone trying to access the site using IE v1 (or >= 20) wouldn't get 'badBrowser' set to true and the warning page wouldn't be displayed properly. That's a risk we're willing to take.

[4] Yes, I know that Microsoft has "conditional comments" that can be used for precise browser version detection. IE no longer supports conditional comments as of IE 10, rendering this approach absolutely useless.

Any other obvious issues to be aware of? Thanks.

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about internet-explorer