Par défaut, IE8 force les sites Web intranet en mode de compatibilité. J'ai essayé de changer l'en-tête méta en IE8, mais il ne reconnaît pas l'en-tête méta et utilise simplement le paramètre du navigateur. Quelqu'un sait-il comment désactiver cela?
200
Réponses:
Il est possible de remplacer le mode de compatibilité dans l'intranet.
Pour IIS, ajoutez simplement le code ci-dessous au web.config. A travaillé pour moi avec IE9.
Équivalent pour Apache:
Et pour nginx:
Et pour express.js:
la source
Michael Irigoyen a raison MAIS c'est un peu plus compliqué ...
si vous utilisez le merveilleux passe-partout de Paul Irish, vous aurez quelque chose comme ceci: -
Cela ne fonctionnera PAS comme prévu et forcera dans IE en mode de compatibilité dans un environnement Intranet si vous avez coché la case "Afficher les sites intranet dans la vue de compatibilité". Vous devez supprimer les commentaires IE conditionnels pour empêcher le mode de compatibilité intranet.
Le code suivant fonctionnera donc:
Fondamentalement, si vous déclenchez des commentaires IE conditionnels avant l'
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
instruction, vous serez forcé en mode de compatibilité dans un environnement Intranet si vous exécutez IE9 avec les paramètres par défaut.MISE À JOUR - INFORMATIONS SUPPLÉMENTAIRES: Mais notez qu'il y a une astuce qui fera fonctionner la plaque bouillante HTML5:
Ajoutez un commentaire conditionnel vide avant le DOCTYPE. Et notez également que lorsque vous faites cela , vous pouvez également ajouter des commentaires conditionnels autour de la
X-UA-Compatible
directive, ce qui rend également la page HTML5 valide. Ainsi, par exemple:Un article de blog inspiré de la première partie de cette réponse contient plus de détails. Et par ailleurs: Comme mentionné dans ce blog, on peut aussi remplacer le commentaire conditionnel avant le DOCTYPE avec un demi conditionnel commentaire à aucune condition :
<!--[]-->
. Ainsi, ainsi:Mais notez que cette dernière variante (
<--[]--><!DOCTYPE html>
), comme expliqué par exemple par cette réponse à une autre question , activera le problème bien connu qui, pour les versions IE anciennes sans prise en charge deX-UA-Compatioble
(lire: pour IE7 et IE6), amènera le navigateur dans Mode de quirks.la source
Si vous déroulez le menu "Outils" et choisissez "Paramètres d'affichage de compatibilité" Dans cette boîte de dialogue en bas se trouve un paramètre "Afficher les sites intranet en mode de compatibilité". Si vous décochez cette option, cela devrait résoudre le problème et IE utilisera le mode basé sur le DOCTYPE.
la source
Il y a une certaine confusion dans les réponses à cette question.
La première réponse est actuellement une solution côté serveur qui définit un indicateur dans l'en-tête http et certains commentaires indiquent qu'une solution utilisant une balise META ne fonctionne tout simplement pas.
Je pense que cette entrée de blog donne un bon aperçu de la façon d'utiliser les métadonnées de compatibilité et, selon mon expérience, fonctionne comme décrit: http://blogs.msdn.com/b/cjacks/archive/2012/02/29/using-x- ua-compatible-to-create-durable-enterprise-web-applications.aspx
Les points principaux:
Un point important (et je pense que beaucoup de confusion vient de ce point) est que IE a deux "classes" de modes:
Le mode document détermine le moteur de rendu (comment la page Web est-elle rendue).
Le mode navigateur détermine la chaîne d'agent utilisateur (UA) envoyée par IE aux serveurs, la valeur par défaut du mode document et la façon dont IE évalue les commentaires conditionnels.
Plus d'informations sur le mode document contre le mode navigateur peuvent être trouvées dans cet article: http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for- site-developers.aspx? Redirected = true
D'après mon expérience, les métadonnées de compatibilité n'influenceront que le mode document . Donc, si vous comptez sur la détection du navigateur, cela ne vous aidera pas. Mais si vous utilisez la détection de fonctionnalités, cela devrait être la voie à suivre.
Je recommanderais donc d'utiliser la balise meta (dans la page html) en utilisant cette syntaxe:
Remarque: donnez une liste des modes de navigation pour lesquels vous avez testé.
Le billet de blog déconseille également l'utilisation d'EmulateIEX. Voici une citation:
la source
Essayez cette balise META:
Cela devrait forcer IE8 à s'afficher en mode standard IE8 même si "Afficher les sites intranet dans la vue de compatibilité" est coché [pour l'intranet ou tous les sites Web], je l'ai essayé moi-même sur IE 8.0.6
la source
Notre administrateur système a résolu ce problème en décochant la case globalement pour notre organisation. Les utilisateurs n'avaient même pas besoin de se déconnecter.
la source
J'ai trouvé une réponse de travail qui permet de remplacer la vue de compatibilité intranet vérifiée. Ajoutez simplement dans l'événement OnInit de votre page cette ligne (pas besoin de meta ou web.config customHeader):
la source
Essayez de mettre ce qui suit dans l'en-tête:
Avec l'aimable autorisation de Paul Irish's HTML5 Boilerplate (mais cela fonctionne également dans XHTML Transitional).
la source
J'ai pu remplacer le mode de compatibilité en spécifiant la balise META comme LE PREMIER TAG dans la section head, pas seulement la première balise META mais aussi et seulement comme le TRÈS PREMIER TAG .
Merci à @ stefan.s de m'avoir mis dessus dans votre excellente réponse. Avant de lire, j'avais:
CECI N'A PAS FONCTIONNÉ
déplacé la balise de lien hors du chemin et cela a fonctionné
CELA FONCTIONNE :
Ainsi, un client IE8 configuré pour utiliser la compatibilité rend la page en mode standard IE8 - le contenu = 'IE = 9' signifie utiliser la norme la plus élevée disponible jusqu'à et y compris IE9.
la source
Ce n'est pas exactement une solution, mais je pense que c'est la meilleure. Sur nos sites intranet, nous disons aux gens qu'il n'est accessible que par Firefox, nous ne prenons pas gentiment les utilisateurs d'IE ici. Vérifiez l'agent utilisateur côté serveur ou client et refusez-lui l'accès depuis IE. Et je suis un programmeur .NET.
la source
J'avais eu du mal avec ce problème et je voulais aider à fournir une solution et un aperçu uniques.
Certains frameworks basés sur AJAX injectent des javascripts et des feuilles de style au début du
<head>
et cela semble empêcher la solution de balise méta bien établie de fonctionner correctement. Dans ce cas, j'ai trouvé que l'injection directe dans l'en-tête de réponse HTTP, tout comme la réponse d'Andras Csehi, résoudra le problème.Cependant, pour ceux d'entre nous qui utilisent des servlets Java, un bon moyen de résoudre ce problème consiste à utiliser un filtre de servlets.
la source
Nous pouvons résoudre ce problème dans l'environnement Spring-Apache-tomcat en ajoutant une seule ligne dans la méthode RequestInterceptor -
Référence à partir de - Comment créer un filtre et modifier l'en-tête de réponse Il explique comment résoudre ce problème via un RequestInterceptor (Spring).
la source
Si vous souhaitez que votre site Web force le mode standard IE 8, utilisez cette métabalise avec un DOCTYPE valide:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
Notez la valeur "EmulateIE8" plutôt que la simple "IE8".
Selon les développeurs d'IE, cela devrait "Afficher les DOCTYPE de normes en mode Normes IE8; Afficher les DOCTYPE Quirks en mode Quirks. Utilisez cette balise pour remplacer la vue de compatibilité sur les machines clientes et forcer les normes aux normes IE8".
plus d'informations sur ce billet de blog IE: http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx
la source
Cette question est une copie du mode de navigation Force "Internet Explorer 8" dans l'intranet .
Les réponses indiquent qu'il n'est pas possible de désactiver la vue de compatibilité (côté serveur) - https://stackoverflow.com/a/4130343/24267 . Cela semble certainement être le cas, car aucune des suggestions que j'ai essayées n'a fonctionné. Dans IE8, le «mode navigateur» est défini sur la vue de compatibilité d'Internet Explorer 8, quel que soit le type d'en-tête compatible X-UA que vous envoyez.
J'ai dû faire une manipulation spéciale pour IE7 et le mode de compatibilité, ce qui a provoqué le rendu du navigateur en utilisant IE8, mais j'ai signalé que c'était IE7, a cassé mon code. Voici comment j'ai corrigé mon code (je suis conscient que c'est un horrible hack et je devrais tester des fonctionnalités et non des versions de navigateur):
la source
Eu le même problème. Cela a fonctionné en utilisant
la source
Ajoutez ceci à l'intérieur de votre balise de tête de pages (en ciblant la version IE que vous voulez):
Remarque, cela ne changera PAS le fait que le navigateur indique son mode de compatibilité (appelé le mode navigateur), mais la page s'affichera en mode standard IE8. Si ce n'est PAS encore rendu comme vous le souhaitez, c'est probablement parce que vous avez javascript qui vérifie par erreur la version IE. Consultez le billet de blog suivant pour déterminer de quelle propriété vous devez vous déconnecter, car même si vous définissez la balise compatible Meta X-UA, la chaîne de l'agent utilisateur indiquera toujours MSIE 7.0 .
Dans mon cas, pour le correctif, j'ai dû ajouter une vérification pour le mode de compatibilité IE7. Je l'ai fait en utilisant un simple code javascript:
la source
Pour toute autre personne lisant ceci qui cherche à désactiver cela via GPO pour tous les utilisateurs, voici le paramètre:
Configuration ordinateur / Modèles d'administration / Composants Windows / Internet Explorer / Affichage de compatibilité / Activer le mode standard d'Internet Explorer pour l'intranet local
bien que l'édition web.config l'ait corrigé pour moi.
la source
Modifier les en-têtes dans .htaccess
Trouvé la solution à ce problème ici: https://github.com/h5bp/html5-boilerplate/issues/378
la source
Le commentaire de Stefan S sur le mode document par rapport au mode navigateur était très pertinent pour mon problème.
J'ai les métadonnées X-UA-Content dans la page, mais j'étais en train de tester la version du navigateur côté client via
navigator.appVersion
. Ce test ne reflète pas les métadonnées car il donne au mode navigateur et non au mode document.La réponse pour moi a été de tester
document.documentMode
quelque chose comme:Maintenant, ma balise meta X-UA-Content se reflète dans mon test de navigateur.
Pourquoi est-ce que je fais une chose aussi désapprouvée que de tester le navigateur? La vitesse. Divers de mes compléments jQuery, comme tablesorter, sont tout simplement trop lents sur IE6 / 7, et je veux les désactiver. Je ne suis pas sûr que le test des fonctionnalités du navigateur puisse m'aider à résoudre ce problème autrement.
la source