Detecting IE using jQuery

15,457

Solution 1

The jQuery documentation for jQuery.browser shows the following warning. (Emphasis is mine.)

Because $.browser uses navigator.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 is false in IE 6, and 7.
  • $.support.cssFloat is false for IE 6, 7 and 8; it is true in IE 9.
  • $.support.leadingWhitespace is false for IE 6, 7, and 8.
  • $.support.objectAll is currently false 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).

Share:
15,457
eozzy
Author by

eozzy

UI Designer & Front-end Developer

Updated on June 14, 2022

Comments

  • eozzy
    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
    Nemke over 11 years
    Just for all others that find this comment, $.support.cssFloat is false for IE 6, 7 and 8. In IE 9 it is true.
  • kand
    kand over 11 years
    I 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??