Je dois détecter non seulement le type de navigateur, mais également la version en utilisant jQuery. La plupart du temps, j'ai besoin de savoir si c'est IE 8 ou non.
Je ne sais pas si je le fais correctement.
Si je fais :
if (jQuery.browser.version >= 8.0) {
dosomething}
Je ne suis pas sûr que cela fonctionnera pour la version 8.123.45.6 ou cela fonctionnera-t-il?
Edit: Notez que JQuery 2+ a abandonné la prise en charge d'IE8 et des versions antérieures, et ne peut donc plus être utilisé pour détecter IE8. Si vous utilisez une version actuelle de JQuery, il est nécessaire d'utiliser une solution Non-JQuery.
javascript
jquery
salmane
la source
la source
jquery.support.opacity
juste fait ce que je voulais. Merci ...jQuery.browser
, n'a pas besoin d'une bibliothèque supplémentaire comme Modernizr, et ne nécessite pas d'éditer le HTML (convient donc aux plugins, etc.) ...Réponses:
Il est documenté dans la documentation de l' API jQuery . Recherchez Internet Explorer avec
$.browser.msie
, puis vérifiez sa version avec$.browser.version
.MISE À JOUR: $ .browser supprimé dans jQuery 1.9
la source
if(jQuery.browser.version.substring(0, 2) == "8.") { ... }
. De cette façon, il fonctionnera avec toutes les versions d'IE8.jQuery.browser
était obsolète dans la version 1.3 et pourrait être déplacé vers un plugin à l'avenir. Voir la documentation jQuery.browserJe pense que la meilleure façon serait la suivante:
À partir du passe-partout HTML5:
dans JS:
surtout depuis qu'il
$.browser
a été supprimé de jQuery 1.9+.la source
lt-ie9
AOTie8
<html>
lieu de<body>
?Cela devrait fonctionner pour toutes les versions mineures d'IE8
-- mettre à jour
Veuillez noter que $ .browser est supprimé de jQuery 1.9
la source
N'oubliez pas que vous pouvez également utiliser HTML pour détecter IE8.
Avoir cela avant tous vos scripts vous permettra de vérifier simplement la variable "ie" ou autre.
la source
document.documentMode n'est pas défini si le navigateur n'est pas IE8,
il renvoie 8 pour le mode standard et 7 pour 'compatible avec IE7'
S'il s'exécute sous IE7, de nombreuses fonctionnalités css et dom ne seront pas prises en charge.
la source
if ((document.documentMode || 100) < 9) { // IE8
0
pendant le chargement de la page - "essayez de déterminer le mode de compatibilité du document plus tard" (c'est-à-dire après que le document est prêt).En supposant...
<body>
ou<html>
)... alors c'est probablement la meilleure astuce (basée sur cette variante non-jQuery, légèrement moins flexible ). Il crée ensuite des tests pour puis supprime un commentaire conditionnel approprié.
(Les commentaires conditionnels sont ignorés dans le `` mode standard '' d'IE10 + - mais cela devrait être bien car le `` mode standard '' d'IE10 + n'a pas de moteur de rendu fou!)
Déposez cette fonction:
Ensuite, utilisez-le comme ceci:
Je suggérerais également de mettre en cache les résultats de cette fonction afin que vous n'ayez pas à la répéter. Par exemple, vous pouvez utiliser la chaîne
(comparison||'')+' IE '+(version||'')
comme clé pour stocker et vérifier le résultat de ce test dans un objet quelque part.la source
Remarque:
1) $ .browser semble être abandonné dans jQuery 1.9+ (comme noté par Mandeep Jain). Il est recommandé d'utiliser à la place .support .
2) $ .browser.version peut renvoyer "7" dans IE> 7 lorsque le navigateur est en mode "compatibilité".
3) À partir d'IE 10, les commentaires conditionnels ne fonctionneront plus.
4) jQuery 2.0+ abandonnera le support pour IE 6/7/8
5) document.documentMode semble être défini uniquement dans les navigateurs Internet Explorer 8+. La valeur renvoyée vous indiquera dans quel mode "compatibilité" Internet Explorer est en cours d'exécution. Ce n’est toujours pas une bonne solution.
J'ai essayé de nombreuses options .support (), mais il semble que lorsqu'un navigateur IE (9+) est en mode de compatibilité, il se comportera simplement comme IE 7 ... :(
Jusqu'à présent, je n'ai trouvé que cela fonctionne (genre-a):
(si documentMode n'est pas défini et que htmlSerialize et l'opacity ne sont pas pris en charge, alors vous regardez très probablement IE <8 ...)
la source
Si vous manipulez les versions de navigateur, cela ne mène souvent à rien. Vous ne voulez pas l'implémenter vous-même. Mais vous pouvez Modernizr créé par Paul Irish et d'autres personnes intelligentes. Il détectera ce que le navigateur peut réellement faire et mettra des classes appropriées dans l'
<html>
élément. Cependant, avec Modernizr , vous pouvez tester la version IE comme ceci:De même, vous pouvez utiliser
.lt-ie8
et.lt-ie7
.la source
Vous devriez également regarder jQuery.support . La détection des fonctionnalités est beaucoup plus fiable que la détection du navigateur pour coder vos fonctionnalités (à moins que vous n'essayiez simplement de consigner les versions du navigateur).
la source
Vous pouvez facilement détecter le type et la version du navigateur, en utilisant cette jquery
la source
Voici le plugin de détection du navigateur Jquery pour identifier la détection du navigateur / système d'exploitation.
Vous pouvez l'utiliser à des fins de style après avoir inclus le plugin.
la source
Vous pouvez utiliser $ .browser pour détecter le nom du navigateur. les valeurs possibles sont:
ou obtenez un indicateur booléen: $ .browser.msie sera vrai si le navigateur est MSIE.
quant au numéro de version, si vous n'êtes intéressé que par le numéro de version majeure, vous pouvez utiliser parseInt ($. browser.version, 10). pas besoin d'analyser vous-même la chaîne $ .browser.version.
Quoi qu'il en soit, la propriété $ .support est disponible pour détecter la prise en charge de fonctionnalités particulières plutôt que de s'appuyer sur $ .browser.
la source