web-dev-qa-db-fra.com

Comment détecter IE7 avec jQuery?

Comment détecter IE7 avec jQuery en utilisant éventuellement jQuery.browser?

46
Mithun Sreedharan

J'ai une méthode

if ($.browser.msie  && parseInt($.browser.version, 10) === 7) {
  alert('IE7'); 
} else {
  alert('Non IE7');
}

-- mise à jour

Veuillez noter que $. Browser est supprimé de jQuery 1.9

70
Mithun Sreedharan

Voir $. Browser . Cette fonctionnalité est obsolète et vous devriez plutôt considérer $. Support .

Pour répondre à la question, il s'agit d'une technique solide comme un roc principalement pour une utilisation dans les feuilles de style, mais peut également être utilisée facilement pour vérifier la version du navigateur, ou mieux encore une partie d'un sélecteur.

  1. Utilisez le balisage suivant (de HTML5 Boilerplate)

    <!--[if lt IE 7]><html class="ie6"><![endif]-->
    <!--[if IE 7]><html class="ie7"><![endif]-->
    <!--[if IE 8]><html class="ie8"><![endif]-->
    <!--[if gt IE 8]><!--><html><!--<![endif]-->
    <head>
    
  2. Utiliser un sélecteur avec hasClass dans jQuery

    $('html').hasClass('ie7');
    $('html.ie7 .myclass').dostuff();
    
  3. Et utiliser dans le cadre d'un sélecteur normal en CSS

    .mydiv {max-height:50px}
    .ie6 .mydiv {height:50px} /* ie6 max-height fix */
    
52
James Westgate

Toutes autres choses considérées:

if ($.browser.msie && $.browser.version == 7) {

    //do something

    };

Devrait marcher. Que ce soit ou non la bonne façon de procéder est une autre question.

8
Nils