8

Dans IE 8, nous pouvons faire ressortir les outils de développement. Puis sur le dessus, il y a un mode navigateur:Outils de développement d'IE 8: Mode de navigateur: IE 7, IE 8, mais qu'est-ce que IE 8 "Compatibility View"?

IE 7 
IE 8 
IE 8 Compatibility View 

Donc, si IE 7 est de forcer la page à afficher comme si le navigateur est IE 7 et
IE 8 est de forcer la page à afficher à l'aide du norme IE 8 tel qu'il est,
alors quel est le supplément IE 8 "Compatibility View" pour? À quoi sert-il? Si nous avons déjà IE 7, pourquoi avoir besoin de ce mode supplémentaire? Que fait ce mode que le mode IE 7 ne peut pas faire?

Répondre

6

La différence réside dans la chaîne de l'agent utilisateur. "IE7" émule exactement la chaîne de l'agent utilisateur d'IE7, montrant MSIE 7.0.

"IE8" utilise exactement la chaîne d'agent utilisateur natif de IE8, montrant MSIE 8.0 ainsi que Trident/4.0, qui est la version du moteur de disposition Trident utilisée dans IE8.

IE8-Compatibility utilise la chaîne d'agent utilisateur native du navigateur, mais modifie "8.0" à "7.0".

Parce que Trident n'avait pas de numéro de version antérieure à IE7, la chaîne IE7 n'affiche pas "Trident/x.x". Donc, avec une chaîne d'agent utilisateur MSIE 7.0, si "Trident/4.0" est également présent, vous savez que IE8 fonctionne en mode compatibilité; Si "Trident/x.x" n'est pas là, vous savez que c'est le vrai IE7 ou IE8 en mode IE7 (pas le mode de compatibilité).

J'espère que mon explication est assez claire, et voici un exemple de certaines chaînes d'agent utilisateur ci-dessous.

IE7:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)

IE8:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)

IE8-Compatibilité:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)

+0

Qu'est-ce que l'utilisation de IE 8 Affichage de compatibilité alors? Juste pour avoir une chaîne USER_AGENT différente? En outre, lorsque le site Web fournit des pages à l'utilisateur avec la balise meta avec IE7-Compatibility, la situation n'est-elle pas inversée? (navigateur indiquant IE 8, mais la page est rendue au client en utilisant le moteur de rendu non-Trident) - encore une fois, quelle est l'utilisation de choisir "IE 8 Compatibility View" dans les outils de développement? –

+0

Les sites Web peuvent faire la différence entre IE7 et IE8-in-compatibility-mode en fonction de la chaîne de l'agent utilisateur. Les différents modes vous permettront de voir les différences que le site Web peut avoir quand il est envoyé l'une ou l'autre des deux chaînes. –

+0

Le "Browser Mode" ne contrôle-t-il donc que cette chaîne qui est envoyée au serveur? Cela n'a-t-il pas d'impact sur la façon dont le contenu est rendu? Où le mode document entre-t-il en jeu? – felickz