27 votes

Comment puis-je détecter si IE8 fonctionne dans la vue de compatibilité?

Est-il de toute façon à déterminer si un navigateur IE8 a l'affichage de compatibilité allumé?

Je n'arrive pas à trouver quoi que ce soit sur Google, et donc je me demandais si c'est un élément d'information qui est disponible...

Pourquoi demandez-vous!? Je suis en train de traquer un bug dans notre application. Je suis rattache à travers le Elmah journaux et il semble y avoir une tendance; cette erreur est généralement jetés par IE8. J'ai essayé de pensions de l'défaut dans mon exemplaire de IE8, mais ne pouvait pas. Je veux affiner les coupables, et pensé que ce pourrait être une façon de le faire.

18voto

Alohci Points 30645

En Javascript, utilisez document.documentMode

Voir http://msdn.microsoft.com/en-us/library/cc196988%28VS.85%29.aspx pour plus de détails.

7voto

Tommy Points 1728

Evidemment IE8 a de nouvelles propriétés

document.documentMode

et

document.compatMode

http://msdn.microsoft.com/en-us/library/cc196988(VS.85).aspx

3voto

horseman Points 407

Recherchez le "Trident / 4.0" dans userAgent. Il ne doit être présent que pour IE-8. http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/33e0ed49-11fb-4d91-857c-a35496e90075

3voto

Brian McGinity Points 1671

J'utilise:

 try{ JSON } catch (e){ alert("Compatibility Mode Detected")  }
 

L'objet JSON été défini dans IE 8 , donc dans IE 7 ou quand dans Compatibility Mode une erreur est levée et interceptée.

J'aime que cela fonctionne à chaque fois et que ce soit une ligne.

2voto

sijpkes Points 66

Pour développer la réponse de @ Tommy, utilisez la détection des fonctionnalités (l'alerte est facultative bien sûr, j'utilise un joli message div ou inline quelque part):

 if(typeof document.documentMode !== 'undefined') { // checks if this is IE 8 or >
         if(document.documentMode < 8) {  // check if in compat mode 
             // add code here to inform user that they need to turn off compatiblity view
             alert("Click ALT-T then compat view etc...");  
         }
} 
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X