I am searching for an object detection capability check which will identify IE9. Can you help me?
3 Answers
Check out this snippet by James Padolsey:
// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
// ie === undefined
// If you're in IE (>=5) then you can determine which version:
// ie === 7; // IE7
// Thus, to detect IE:
// if (ie) {}
// And to detect the version:
// ie === 6 // IE6
// ie > 7 // IE8, IE9 ...
// ie < 9 // Anything less than IE9
// ----------------------------------------------------------
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
Afterwards, you could use it like this:
if (ie == 9) {
// It’s IE9!
// Insert your code here
}
The good thing here is that it doesn’t sniff the UA string (which, in itself, is unreliable) — instead, it uses conditional comments, which work reliably in IE.
This can be used to detect IE5—9.

- 144,855
- 52
- 216
- 248
-
when i test it in ie9 it gives me "7". – FURKAN ILGIN Feb 01 '12 at 10:57
-
1+1 for this, which is what I would have posted and seems not that well-known. One thing to note is that IE 10 will not support conditional comments, so this trick will not work in future versions of IE (see http://blogs.msdn.com/b/ie/archive/2011/07/06/html5-parsing-in-ie10.aspx) – Tim Down Feb 01 '12 at 10:58
-
2@FURKANILGIN: http://stackoverflow.com/questions/8187346/html-conditional-statement-hack-sees-ie-as-wrong-version-when-live – Tim Down Feb 01 '12 at 11:02
-
@TimDown Yeah, I did mention in the post that it can be used to detect IE5–9 — but that may have been too subtle. – Mathias Bynens Feb 01 '12 at 11:24
-
@MathiasBynens: I saw that but thought the point needed spelling out. So yes, too subtle :) – Tim Down Feb 01 '12 at 12:14
Use the properties of the IE window object introduced in each release to distinguish IE versions:
IE >= 7:
("onpropertychange" in document) && (!!window.XMLHttpRequest)
IE >= 8:
("onpropertychange" in document) && (!!window.XDomainRequest)
IE >= 9:
("onpropertychange" in document) && (!!window.innerWidth)
IE >= 10:
("onpropertychange" in document) && (!!window.matchMedia)
IE >= 11:
(!!window.msMatchMedia) && (!window.doScroll)

- 24,148
- 7
- 127
- 265
Not 100% sure this is what you're asking, but if you want to detect information about the browser of the visitor you can do check navigator.appVersion
Example:
<div id="example"></div>
<script type="text/javascript">
txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
document.getElementById("example").innerHTML=txt;
</script>

- 10,170
- 1
- 29
- 52