Je suis nouveau sur jquery et je me demandais: est-ce un moyen simple de détecter si un navigateur est Internet Explorer 6 ou inférieur?
Aussi simple que cela:
if($.browser.msie && $.browser.version=="6.0") alert("Im the annoying IE6");
Mise à jour
Veuillez noter que $. Browser est supprimé de jQuery 1.9
Si vous devez toujours utiliser $ .browser dans jQuery 1.9 (ou d'autres fonctions obsolètes), essayez jQuery-migrate ( https://github.com/jquery/jquery-migrate/ - http://code.jquery.com/jquery-migrate-1.2.1.js )
Vous pouvez également demander directement IE.
<!--[if lte IE 6]>
<script type="text/javascript">
var isRunningIE6OrBelow = true;
</script>
<![endif]-->
jQuery vérifie les fonctionnalités plutôt que les "navigateurs". Cela dit, vous pouvez utiliser la méthode jQuery.support pour détecter ce dont le navigateur des utilisateurs est capable.
Méthodes obsolètes (ne pas utiliser)
http://docs.jquery.com/Utilities/jQuery.support vous donnera un résumé des fonctionnalités prises en charge par quels navigateurs. En prenant ces données, vous développerez quelques vérifications conditionnelles pour déterminer si le navigateur utilisé est votre navigateur cible ou non.
if ($.browser.msie && parseInt($.browser.version, 10) <= 6) {
alert("I'm not dead yet!");
}
-- mise à jour
Veuillez noter que $. Browser est supprimé de jQuery 1.9
Très belle façon de détecter IE est:
if ('v'=='\v') {
welcome to IE ))
}
Malheureusement, il ne peut pas reconnaître sa version mais ce n'est pas toujours nécessaire.
Si ActiveXObject
existe et XMLHttpRequest
n'existe pas, c'est IE6:
/* IE6 Check */
(!!window.ActiveXObject && !window.XMLHttpRequest) ? true : false;
Dans IE7, ce serait:
(!!window.ActiveXObject && !!window.XMLHttpRequest) ? true: false;
Références
Je vérifie souvent la version d'un navigateur. La méthode .support est excellente, mais elle n'aide pas vraiment lorsque vous devez masquer des sélections en cas de superposition. Il n'y a pas de "supports sélectionne les contrôles fenêtrés". Vous avez juste besoin de vérifier la version du navigateur, donc je dirais que vous vous trompez vers la méthode .support où vous pouvez, et utilisez le .browser si nécessaire.
En outre, un autre bon point est qu'avec JQuery, vous n'êtes pas censé vous soucier de la version.
Cela n'aide pas si vous utilisez jquery pour corriger un bogue de rendu css IE6.
Juste pour faire savoir aux gens que $ .browser.msie && /6.0/.test(navigator.userAgent) n'est pas fiable, je suis venu à cette question à la recherche d'une réponse à un problème avec le bgiframe JQuery qui se casse sur ma machine parce que je ai "Media Center PC 6.0" dans ma chaîne navigator.userAgent. J'ai maintenant édité la source pour utiliser le test $ browser.version.
Il est stupide de la part de JQuery de déconseiller ces tests de navigateur car aussi moche soit-il, ils sont nécessaires pour faire face à l'état moche de l'écosystème du navigateur.
j'ai toujours utilisé cette solution
http://sinfinity.pl/blog/2012/02/12/detect-internet-Explorer-and-browser-version-in-jquery/
http://docs.jquery.com/Utilities/jQuery.browser.version est de savoir comment
ÉDITÉ: lien corrigé de Douglas
http://api.jquery.com/jQuery.browser/#jQuery.browser.version
Je veux dire, si vous aviez l'ancienne version pas la dernière 1.3 ...
En outre, un autre bon point est qu'avec JQuery, vous n'êtes pas censé vous soucier de la version. JQuery fait des tests de fonctionnalités et gère tout ce qui est dérisoire pour vous. S'inquiéter des versions et des plates-formes est joli 1999
Essayez ceci:
jQuery.each(jQuery.browser, function(i, val) {
$("<div>" + i + " : <span>" + val + "</span>")
.appendTo(document.body);
});
si vous avez besoin de plus d'informations, reportez-vous à ceci:
"Bien qu'il soit peu probable que jQuery.browser soit supprimé, tous les efforts pour utiliser jQuery.support et une détection appropriée des fonctionnalités doivent être faits."
Alors je dis allez-y et utilisez-le. Ils doivent maintenir une compatibilité descendante avec les scripts qui utilisent toujours la méthode de reniflement de l'agent utilisateur.