382 votes

Désactiver le mode de compatibilité d'IE à l'aide de balises

Je travaille pour un client qui impose le mode de compatibilité sur tous les sites intranet. Je me demande s'il existe une balise que je peux insérer dans mon code HTML pour désactiver le mode de compatibilité.

0 votes

Je pense que la réponse que vous cherchez se trouve ici : stackoverflow.com/questions/1014666/

45 votes

En fait, je cherchais exactement le contraire, qui fixe sa norme en mode de compatibilité, c'est tout simplement insensé.

13 votes

Un mauvais javascript sur une ancienne application qui plante sur tout ce qui n'est pas IE7, c'est ce qui définit leur norme de compatibilité. Un jour, nous arriverons à le remplacer...

547voto

Pekka 웃 Points 249607

Il y a le mode "bord". .

<html>
   <head>
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <title>My Web Page</title>
   </head>
   <body>
      <p>Content goes here.</p>
   </body>
</html>

De la page MSDN liée :

Le mode Edge indique à Windows Internet Explorer d'afficher le contenu dans le mode le plus élevé disponible, ce qui rompt réellement le paradigme du "verrouillage". Avec Internet Explorer 8, cela équivaut au mode IE8. Si une version future (hypothétique) d'Internet Explorer prenait en charge un mode de compatibilité supérieur, les pages définies en mode Edge s'afficheraient dans le mode le plus élevé pris en charge par cette version ; toutefois, ces mêmes pages s'afficheraient toujours en mode IE8 lorsqu'elles seraient consultées avec Internet Explorer 8.

Toutefois, le mode "edge" n'est pas encouragé dans le cadre d'une utilisation en production :

Il est recommandé aux développeurs Web de limiter l'utilisation du mode Edge aux pages de test et à d'autres utilisations non productives en raison des résultats inattendus possibles du rendu du contenu des pages dans les futures versions de Windows Internet Explorer.

Honnêtement, je ne comprends pas vraiment pourquoi. Mais d'après ce document, la meilleure façon de procéder pour le moment est d'utiliser IE=8 .

0 votes

Il est en fait bon de l'utiliser avec le plugin Chrome Frame. Il supprime le bouton "compatibilité" d'IE. J'ai eu des problèmes lorsque je voulais utiliser Chrome Frame avec IE8 et les versions inférieures, mais que quelqu'un utilisant IE9 avait le bouton de compatibilité activé par défaut et qu'il était obligé d'installer Google Chrome Frame alors qu'il n'en avait pas besoin.

7 votes

A partir de 8/6/2012, Microsoft semble utiliser IE=10 sur leurs propres sites. Si vous avez testé votre site dans IE10 (version de prévisualisation), vous pouvez l'utiliser en toute sécurité ; sinon, vous pouvez vous en tenir à IE=9 pour l'instant.

75 votes

J'ai constaté que cela ne fonctionne PAS si l'utilisateur (ou l'administrateur système) a activé le mode de compatibilité par défaut en allant à Tools->Compatibility View Settings et cochez la case Afficher tous les sites Web en vue de compatibilité. Pour résoudre le problème, je dois renvoyer l'en-tête dans la réponse HTTP : X-UA-Compatible: IE=edge

95voto

brandonjp Points 1729

Après de nombreuses heures de dépannage de ce genre de choses... Voici quelques faits saillants qui nous a aidé à de la X-UA-Compatible docs: http://msdn.microsoft.com/en-us/library/cc288325(SV.85).aspx#ctl00_contentContainer_ctl16

À l'aide de <meta http-equiv="X-UA-Compatible" content=" _______ " />

  • Le Standard de l'Agent Utilisateur modes (le non-émuler) ignorer <!DOCTYPE> directives de votre page et de rendu basé sur les normes prises en charge par cette version de IE (par exemple, IE=8 mieux obéir à la table de la frontière de l'espacement et de pseudo-sélecteurs de IE=7).

  • Attendu que, le Émuler les modes dire, c'est à dire suivre tout <!DOCTYPE> directives de votre page, le rendu des normes de mode en fonction de la version que vous choisissez et de la mode quirks basé sur IE=5

  • Les valeurs possibles pour l' content d'attribut sont:

    content="IE=5"

    content="IE=7"

    content="IE=EmulateIE7"

    content="IE=8"

    content="IE=EmulateIE8"

    content="IE=9"

    content="IE=EmulateIE9"

    content="IE=edge"

68voto

Amadiere Points 5606

Si vous travaillez sur une page dans la zone Intranet, vous pouvez constater que IE9, quoi que vous fassiez, passe en mode Compat IE7.

Cela est dû à la configuration des paramètres de compatibilité d'IE qui stipule que tous les sites Intranet doivent fonctionner en mode de compatibilité. Vous pouvez désactiver ce paramètre par le biais d'une stratégie de groupe (ou tout simplement en le décochant dans IE), ou vous pouvez définir les paramètres suivants :

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

Cela fonctionne (comme indiqué dans d'autres réponses), mais cela peut ne pas sembler être le cas au départ : il doit être placé avant que les feuilles de style soient déclarées. . Si vous ne le faites pas, il est ignoré.

3 votes

Merci pour l'avertissement concernant la feuille de style, cela causait des problèmes et je sais maintenant pourquoi !

0 votes

Yep, initialement agressé par le placement. Merci d'avoir ajouté ça.

0 votes

Merci, c'était très utile. Ils ont un GPO qui fixe le niveau effectif d'IE à 7, même si IE 11 est installé. Cela m'a évité d'avoir à mettre des cales dans le site pour que les js fonctionnent.

30voto

Peter Ruderman Points 6151

Je pense que cela fera l'affaire :

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

20voto

Lance Anderson Points 51

La solution des métabalises ne fonctionnait pas pour nous, mais le fait de les placer dans l'en-tête de réponse a fonctionné :

header('X-UA-Compatible: IE=edge,chrome=1');

3 votes

+1 pour le "chrome=1" ; je ne le savais pas. Pour ce que ça vaut, le passage à IE=10 a résolu un certain nombre de problèmes de rendu sur mon site sur lesquels IE=edge n'avait aucun effet.

1 votes

Explication de la chrome=1 propriété, stackoverflow.com/a/22059516/368691 . N'oubliez pas que Chrome Frame a été retiré. blog.chromium.org/2013/06/retiring-chrome-frame.html

1 votes

Voir les commentaires sur les autres réponses... J'ai constaté que cela ne fonctionne PAS si l'utilisateur (ou l'administrateur système) a activé le mode de compatibilité par défaut en allant dans Outils->Paramètres d'affichage de compatibilité, et en cochant Afficher tous les sites Web en mode de compatibilité. speedplane 19 avr. 13 à 11:29 7 La balise méta de compatibilité DOIT être la première balise méta, et il ne peut y avoir AUCUNE déclaration conditionnelle IE avant la balise. En savoir plus : tesmond.blogspot.com/2011/10/... - Chris Sobolewski Aug 19 '13 at 20:23

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