La détection de IE8 de manière fiable à l'aide de javascript
J'ai écrit une application web qui nécessite IE version 8 (ou plus vraisemblablement). Si je lance IE8 sur une nouvelle installation de windows sur une machine virtuelle c'rapports "MSIE 8.0" comme un agent utilisateur lorsqu'il est interrogé avec le navigateur.userAgent en javascript. Mais sur un des collègues machine windows 7 son IE de rapports version 8 dans l'Aide|à Propos de la fenêtre, mais la chaîne de l'agent utilisateur est 'MSIE 7.0'.
Je me dis que quelque part sur sa machine il y a un paramètre que dit IE pour usurper la version précédente, un certain type de paramètre de compatibilité je présume, mais pour la vie de moi je ne le trouve pas. Je ne suis pas la configuration de quirksmode ou IE7 en mode de compatibilité de ma fin.
Je suis une f***ing fan de l'astérisque forme de censure. 🙂
ouais, eh bien, [juron] vous! 😛
C'est effectivement la meilleure normes CSS soutien offert par IE8 que je suis à la recherche d'; je ne sais pas comment faire pour fonction de détecter spécifiquement. Bien sûr, je pourrais fonction de détecter quelque chose de IE8 spécifique de toute façon. De toute façon, la question demeure, pourquoi l'agent de l'utilisateur de rapports d'une version précédente?
ou plutôt, qu'est-ce que mon application web de faire qui est à l'origine de l'agent utilisateur de misreport, parce que si c'est de déclaration, qui pourrait dire que c'est mis en mode de compatibilité par l'application web, ce qui est précisément le comportement, je ne suis pas à la recherche pour
OriginalL'auteur sirlark | 2010-08-31
Vous devez vous connecter pour publier un commentaire.
je ne suis pas sûr si cela fonctionne pour un navigateur en cours d'exécution en mode de compatibilité. avez-vous testé?
Je pense que c'est juste ce que vous voulez: l'Opéra se présentant comme IE est encore de l'Opéra et des actes comme l'Opéra.
J'avais inverser cette et supposons que l'utilisateur n'est pas avec IE8 et d'utiliser le commentaire conditionnel pour détecter IE8 et mise à jour du var. C'est parce que tous les navigateur prend en charge les commentaires et la part de marché est en baisse rapide - cibler au mieux les actuels/futurs tendance par défaut.
Cela ne fonctionnera pas sur IE10+ depuis IE10 cessé de soutenir les commentaires conditionnels
OriginalL'auteur Quentin
L'agent utilisateur n'est pas sensible ou de moyen fiable de déterminer la version du navigateur.
Pourquoi ne pas rechercher la présence de la fonctionnalité dont vous avez besoin en faisant IE8 seul et l'utiliser?
C'est une méthode beaucoup plus fiable.
OriginalL'auteur Woody
La plus divertissante de truc que j'ai vu — sans avoir aucune idée de la façon dont elle est efficace — est de tirer parti de l'IE conditionnel fonctionnalité de commentaire dynamiquement. Pour ce faire, votre code caché
<div>
ou un<div>
dans un fragment de document, ou que ce soit, et il insère dans le code HTML entouré par un commentaire conditionnel codé à vérifier pour une version de votre navigateur:IE8 peut montrer un petit bouton à côté de la zone de l'URL qui permet de commuter le navigateur entre mode IE7 et IE8 en mode. Vous pouvez ouvrir le "Developer Tools" et que vais vous dire ce que le réglage actuel est.
oui je n'ai pas; je ne suis pas assez intelligent pour ça 🙂
OriginalL'auteur Pointy
Pourriez-vous utiliser les commentaires conditionnels?
OriginalL'auteur Piskvor
http://www.modernizr.com/
Il doit détecter de telles questions. Sinon, je ne suis pas sûr mais IE 8 pourrait passer son User-Agent tag en "Mode de Compatibilité'.
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
(certains braindead scripts sont à la recherche de "Gecko" dans le script, parce que c'est ce que Firefox; et ne me lancez pas sur la première "Mozilla")Modernizr détecte , pas de bugs, d'incompatibilité ou de la version de votre navigateur
Jiang: ah ok, je dois avoir mal compris. Je travaillais à la partie sur le User-agent.
Et j'ai été de répondre à l'affiche originale de cette réponse... Votre commentaire n'a pas révélé quand j'étais en tapant le commentaire.... clarifié.
Jiang: ce Qui est souvent (?) le légitime but de les gens à poser des questions sur l'agent utilisateur en reniflant. @Piskvor: je ne plaide pas la cause quoi que ce soit, simplement de répondre à la question. Il a voulu voir ce qui était bizarre avec son scénario - je soupçonne qu'il pourrait avoir été que la.
OriginalL'auteur Rushyo
La seule façon que je peux comprendre comment obtenir ma version de IE8 à dire que c'est IE7 est d'activer l'Affichage de Compatibilité. Voir http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx
OriginalL'auteur geowa4
S'avère que son navigateur a été configuré pour afficher toutes les sites intranet' en mode de compatibilité. Aussi, oui, la compatibilité changement de mode de la chaîne de l'agent utilisateur.
OriginalL'auteur sirlark
Trouvé cette douce fonction GIT (dans les commentaires):
OriginalL'auteur Justin