Je suis nouveau sur jquery et je me demandais: est-ce qu’un moyen simple de détecter si un navigateur est Internet Explorer 6 ou moins?
Aussi simple que cela:
if($.browser.msie && $.browser.version=="6.0") alert("Im the annoying IE6");
Mettre à jour
Veuillez noter que $ .browser est supprimé de jQuery 1.9
Si vous avez toujours besoin d’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.
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 que le navigateur de l’utilisateur est capable de faire.
Méthodes déconseillées (ne pas utiliser)
http://docs.jquery.com/Utilities/jQuery.support vous donnera un résumé des fonctionnalités sockets en charge par quels navigateurs. En prenant ces données, vous allez développer 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!"); }
-- mettre à jour
S'il vous plaît pas que $ .browser est supprimé de jQuery 1.9
Très belle façon de détecter IE est la suivante:
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 que XMLHttpRequest
ne le fait pas, c’est IE6:
/* IE6 Check */ (!!window.ActiveXObject && !window.XMLHttpRequest) ? true : false;
Dans IE7, ce serait:
(!!window.ActiveXObject && !!window.XMLHttpRequest) ? true: false;
Les références
En outre, JQuery vous permet de ne pas vous soucier de la version.
Cela n’aide pas si vous utilisez jquery pour corriger un bogue de rendu de IE6 css.
Je vérifie souvent la version d’un navigateur. La méthode .support est géniale, mais n’aide pas vraiment lorsque vous devez masquer des sélections en cas de superposition. Il n’y a pas de “supports selects sont des contrôles fenêtrés”. Il vous suffit de vérifier la version du navigateur, donc je dirais que la méthode .support est à votre place et que vous devez utiliser le .browser si nécessaire.
Juste pour que les gens sachent que $ .browser.msie && /6.0/.test(navigator.userAgent) n’est pas fiable, je suis arrivé à cette question en cherchant une réponse à un problème avec le bgiframe JQuery qui se brise sur ma machine avoir ‘Media Center PC 6.0’ dans ma chaîne navigator.userAgent. J’ai maintenant édité la source pour utiliser le test $ browser.version.
Son idiot de JQuery de déprécier ces tests de navigateur parce que laids comme ils peuvent être, ils sont nécessaires pour faire face à l’état laid 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/
Essayez ceci:
jQuery.each(jQuery.browser, function(i, val) { $("" + i + " : " + val + "") .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 la détection des fonctionnalités appropriées doivent être effectués.”
Donc je dis aller de l’avant et l’utiliser. Ils doivent maintenir une compatibilité ascendante avec les scripts qui utilisent toujours la méthode de sniffing utilisateur-agent.
http://docs.jquery.com/Utilities/jQuery.browser.version est comment
EDITED: 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, JQuery vous permet de ne pas vous soucier de la version. JQuery teste les fonctionnalités et gère tout ce qui est mal pour vous. S’inquiéter des versions et des plates-formes est plutôt 1999