Detecting IE using jQuery
Solution 1
The jQuery documentation for jQuery.browser
shows the following warning. (Emphasis is mine.)
Because
$.browser
usesnavigator.userAgent
to determine the platform, it is vulnerable to spoofing by the user or misrepresentation by the browser itself. It is always best to avoid browser-specific code entirely where possible. Instead of relying on$.browser
it's better to use libraries like Modernizr.
The documentation page also says:
This property was removed in jQuery 1.9 and is available only through the jQuery.migrate plugin. Please try to use feature detection instead.
Even jQuery.support
, which was suggested from the old documentation has the following warning. (Emphasis is mine.)
A collection of properties that represent the presence of different browser features or bugs. Intended for jQuery's internal use; specific properties may be removed when they are no longer needed internally to improve page startup performance. For your own project's feature-detection needs, we strongly recommend the use of an external library such as Modernizr instead of dependency on properties in
jQuery.support
.
The previous documentation for jQuery.support
reported the following properties and values.
-
$.support.boxmodel
isfalse
in IE 6, and 7. -
$.support.cssFloat
isfalse
for IE 6, 7 and 8; it istrue
in IE 9. -
$.support.leadingWhitespace
isfalse
for IE 6, 7, and 8. -
$.support.objectAll
is currentlyfalse
for IE 6, 7, and 8.
Solution 2
hot from the documentation: We recommend against using this property, please try to use feature detection instead (see jQuery.support).
Comments
-
eozzy about 2 years
$(window).load(function () { if($.browser.msie && $.browser.version=="6.0") { // do stuff } });
Just realized that $.browser has been depreciated in 1.3. What is the new method for detecting IE, specially IE6.
-
Nemke over 11 yearsJust for all others that find this comment, $.support.cssFloat is false for IE 6, 7 and 8. In IE 9 it is true.
-
kand over 11 yearsI know this answer is kind of old, but debugging in IE9 with Browser Mode IE7 has $.support.boxModel === true. Maybe it's because I'm using a browser mode in IE9??