197 votes

Pourquoi IE9 passe-t-il en mode de compatibilité sur mon site web ?

Je viens d'installer la version bêta d'IE9 et sur un site spécifique que j'ai créé (HTML5), IE9 passe en mode de compatibilité, sauf si je lui demande manuellement de ne pas le faire. J'ai essayé de supprimer plusieurs parties du site mais aucun changement. J'ai notamment supprimé tous les includes CSS. Sur d'autres de mes sites Web, tout va bien.

De plus, ne le définissez pas manuellement car IE9 se souviendrait alors du réglage de l'utilisateur et vous ne pourriez pas le remettre en mode automatique (ou du moins je n'ai pas trouvé comment, même en utilisant la navigation privée et en vidant le cache).

En tout cas. Le site où il passe en mode de compatibilité : http://alliancesatwar.com/guide/
Un où le rendu est correct : http://geuze.name/basement/ (Je ne peux pas afficher plus d'un hyperlien)

Les deux utilisent le même doctype et tout. Ces sites ont beaucoup de points communs (hormis l'apparence) et utilisent le même modèle de base (encodage, balises méta, doctype et le même javascript).

Ce serait formidable si quelqu'un avait une réponse à me donner ! Un site web HTML5 qui s'affiche en mode IE7 est plutôt... nul.

Merci d'avance,

Rene Geuze

262voto

bobince Points 270740

Cela fonctionne dans IE9 documentMode pour moi.

Sans un X-UA-Compatible pour définir un documentMode explicite, vous obtiendrez un mode basé sur :

  • si l'utilisateur a déjà cliqué sur le bouton "Vue de compatibilité" dans ce domaine ;
  • peut-être aussi si cela s'est produit automatiquement en raison d'un autre contenu sur le site qui a fait planter le moteur de rendu d'IE8/9 et qui est revenu à l'ancien moteur de rendu ;
  • si l'utilisateur a choisi de mettre tous les sites en vue de compatibilité par défaut ;
  • si IE pense que le site se trouve sur votre intranet et passe donc par défaut en mode de compatibilité ;
  • si le site en question figure dans la propre liste de sites Web de Microsoft qui nécessitent une vue de compatibilité.

Vous pouvez modifier ces paramètres à partir de "Tools -> Compatibility view settings" dans le menu IE. Bien sûr, ce menu est maintenant sournoisement caché, de sorte que vous ne le verrez pas avant d'appuyer sur Alt.

En tant qu'auteur de site, si vous êtes sûr que votre site est conforme aux normes (qu'il s'affiche correctement dans les autres navigateurs et qu'il utilise la fonction de reniflage pour décider des solutions de contournement à utiliser), je vous suggère d'utiliser le site :

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

ou l'en-tête HTTP :

X-UA-Compatible: IE=Edge

pour obtenir le dernier rendu, quelle que soit la version d'IE utilisée.

33voto

pkario Points 991

J'ai mis

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

première chose après

<head>

(Je l'ai lu quelque part, je ne me souviens plus)

Je ne pouvais pas croire que ça marchait !

22voto

Delan Azabani Points 33013

Pour forcer IE à effectuer un rendu en mode standard IE9, vous devez utiliser

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

Certaines conditions peuvent entraîner le passage d'IE9 dans les modes de compatibilité. Par défaut, cela peut se produire sur les sites intranet.

6voto

Mike Gledhill Points 2105

J'ai posté ce commentaire sur un autre fil de StackOverflow, mais j'ai pensé qu'il valait la peine d'être répété ici :

Pour notre application ASP.Net interne, l'ajout de la balise "X-UA-Compatible" sur la page web, dans le web.config ou dans le code-behind n'a fait absolument aucune différence.

Le site uniquement La chose qui a fonctionné pour nous a été de désactiver manuellement ce paramètre dans IE8 :

enter image description here

(Soupir.)

Ce problème ne semble se produire qu'avec IE8 et IE9 sur les sites intranet. Les sites Web externes fonctionnent bien et utilisent la version correcte d'IE8/9, mais pour les sites Web internes, IE9 décide soudainement qu'il s'agit en fait d'IE7, et ne prend pas en charge HTML 5.

Non, je ne comprends pas bien cette logique non plus.

Ma solution, à contrecœur, a été de test si le navigateur prend en charge le HTML 5 (en créant un canevas et en vérifiant s'il est valide), et en affichant ce message à l'utilisateur s'il n'est pas valide :

enter image description here

Ce n'est pas particulièrement convivial, mais faire en sorte que l'utilisateur désactive ce paramètre ennuyeux semble être le seul moyen de les laisser exécuter correctement les applications web HTML 5 internes.

Ou faire en sorte que les utilisateurs utilisent Chrome ;-)

1voto

Le site à http://www.HTML-5.com/index.html possède la métabalise X-UA-Compatible mais passe quand même en affichage de compatibilité, comme l'indique l'icône "page déchirée" dans la barre d'adresse. Comment faire pour que l'option de menu force IE 9 (version finale 9.0.8112.16421) à afficher une page en mode standard ? J'ai essayé de cliquer avec le bouton droit de la souris sur l'icône de la page déchirée et d'utiliser la touche "Alt" pour afficher les options de menu supplémentaires mentionnées par Rene Geuze, mais cela n'a pas fonctionné.

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