254 votes

X-UA-Compatible est définie sur IE = bord, mais il doesn encore ' t arrêter le Mode de compatibilité

Je suis tout à fait confus. Je devrais être en mesure de fixer <meta http-equiv="X-UA-Compatible" content="IE=edge" /> et IE8 et IE9 devrait le rendu de la page à l'aide de la dernière moteur de rendu. Cependant, je viens de tester, et si le Mode de Compatibilité est activé ailleurs sur notre site, il va rester sur notre page, même si nous devrions forcer, ne pas le faire. Comment êtes-vous censé assurez-vous que IE ne pas utiliser le Mode de Compatibilité (même dans un intranet)?

FWIW, je suis en utilisant le DocType HTML5 déclaration (<!doctype html>).

Voici les premières lignes de la page:

<!doctype html> 
<!--[if lt IE 7 ]> <html lang="en" class="innerpage no-js ie6"> <![endif]--> 
<!--[if IE 7 ]>    <html lang="en" class="innerpage no-js ie7"> <![endif]--> 
<!--[if IE 8 ]>    <html lang="en" class="innerpage no-js ie8"> <![endif]--> 
<!--[if (gte IE 9)|!(IE)]><!--> 
<html lang="en" class="innerpage no-js"> 
<!--<![endif]--> 
    <head> 
        <meta charset="ISO-8859-1" /> 
        <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

EDIT: Attends, je viens d'apprendre que le paramètre par défaut sur IE8 est d'utiliser IE7 en mode de compatibilité pour les sites intranet. Serait-ce de remplacer le X-UA-Compatible balise meta?

263voto

Timmy Franks Points 1785

Si vous avez besoin de remplacer IE Paramètres d'Affichage de Compatibilité pour les sites intranet, vous pouvez le faire sur le web.config (IIS7) ou via les en-têtes HTTP personnalisés dans les propriétés du site web (IIS6) et X-UA-Compatible. La balise meta n'est pas de remplacer IE intranet du paramètre dans les Paramètres d'Affichage de Compatibilité, mais si vous la définissez sur le serveur d'hébergement, il sera remplacer la compatibilité.

Exemple pour le web.config dans IIS7:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=EmulateIE8" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

Edit: j'ai enlevé le "clair" code juste avant le 'ajouter'; il était inutile de surveillance de la copie et de collage. Bonne prise, les commentateurs!

186voto

neoswf Points 1865

Côté serveur solution est recommandé, comme @TimmyFranks proposé, dans sa réponse, mais si l'on a besoin pour mettre en œuvre l' X-UA-Compatible règle le niveau de la page, veuillez lire les conseils suivants, de bénéficier de l'expérience de celui qui a déjà obtenu brûlé :-)


L' X-UA-Compatible meta tag doit apparaître tout de suite après le titre de l' <head> élément. Pas d'autres balises meta, des liens de css et de js scripts d'appels peut être placé à l'avant.

<head>
        <title>Site Title</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <script type="text/javascript" src="/jsFile.js"></script>
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="apple-touch-icon" href="http://stackoverflow.com/apple-touch-icon.png" />
        <link rel="shortcut icon" href="http://stackoverflow.com/apple-touch-icon.png" />
</head>

S'il y a des commentaires conditionnels dans la page (disons situé dans l' <html>), ils doivent être placés sous, après l' <head>.

NO
<!--[if gt IE 8]><!--> 
    <html class="aboveIe8"> 
<!--<![endif]-->

YES
<!--[if gt IE 8]><!--> 
    <body class="aboveIe8"> 
<!--<![endif]-->

EDIT: Html5BoilerPlate l'équipe a écrit à propos de ce bug http://h5bp.com/i/378 Ils ont plusieurs solutions.

Concernant l'Intranet Et l'affichage de Compatibilité, il y a de paramètres quand vous allez à outils > paramètres d'affichage de Compatibilité.

Compatibility view settings

37voto

tj111 Points 12313

Notez que si vous avez accepté il de PHP, vous pouvez utiliser le code suivant pour le fixer aussi bien.

26voto

Kerrick Points 2621

Il s’avère que cela a à voir avec le choix « intelligent » de Microsoft pour faire tous les sites intranet de forcer sur le mode de compatibilité, même si est défini sur .

9voto

Pramod Points 61

J’ai aussi eu le même problème de rendu IE9 en normes IE7 Document hôte local. J’ai essayé plusieurs balises de commentaires conditionnels mais infructueuse. En fin de compte j’ai juste enlevé toutes les balises conditionnelles et just a ajouté meta tag immédiatement après la tête comme ci-dessous et cela a fonctionné comme charme.

Elle pourra être qu'utile

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