Je travaille pour un client qui force le mode de compatibilité sur tous les sites intranet. Je me demandais s'il y avait une balise que je pouvais mettre dans mon HTML pour désactiver le mode de compatibilité.
html
internet-explorer
Al Katawazi
la source
la source
Réponses:
Il y a le mode "bord" .
À partir de la page MSDN liée:
Cependant, le mode "bord" n'est pas encouragé lors de l'utilisation en production:
Honnêtement, je ne comprends pas entièrement pourquoi. Mais selon cela, la meilleure façon de faire en ce moment est d'utiliser
IE=8
.la source
IE=10
sur ses propres sites. Si vous avez testé votre site dans IE10 (version d'aperçu), vous pouvez l'utiliser en toute sécurité; sinon, vous voudrez peut-être vous y tenirIE=9
pour l'instant.Tools->Compatibility View Settings
et en cochant Afficher tous les sites Web dans la vue de compatibilité. Pour résoudre le problème, je dois retourner l'en-tête dans la réponse HTTP:X-UA-Compatible: IE=edge
Après plusieurs heures de dépannage de ce problème ... Voici quelques faits saillants rapides qui nous ont aidés à partir des
X-UA-Compatible
documents: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16En utilisant
<meta http-equiv="X-UA-Compatible" content=" _______ " />
Les modes d' agent utilisateur standard (non émulés) ignorent
<!DOCTYPE>
directives de votre page et s'affichent en fonction des normes prises en charge par cette version d'IE (par exemple,IE=8
obéiront mieux à l'espacement des bordures de table et à certains pseudo-sélecteursIE=7
).Tandis que le modes Emulate indiquent à IE de suivre toutes les
<!DOCTYPE>
directives de votre page, le mode standard de rendu basé sur la version que vous choisissez et le mode excentrique basé surIE=5
Les valeurs possibles pour l'
content
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"
la source
Si vous travaillez avec une page dans la zone Intranet, vous pouvez constater qu'IE9, quoi que vous fassiez, passe en mode de compatibilité IE7.
Cela est dû au paramètre dans les paramètres de compatibilité IE qui stipule que tous les sites intranet doivent s'exécuter en mode de compatibilité. Vous pouvez décocher cela via une stratégie de groupe (ou simplement le décocher dans IE), ou vous pouvez définir les éléments suivants:
Cela fonctionne (comme détaillé dans d'autres réponses), mais peut ne pas apparaître initialement: cela doit venir avant que les feuilles de style ne soient déclarées . Si vous ne le faites pas, il est ignoré.
la source
Je pense que cela fera l'affaire:
la source
Comme suggéré dans cette réponse à une question connexe, le mode "edge" peut être défini dans le fichier Web.Config. Cela le fera s'appliquer à tout le HTML renvoyé par l'application sans avoir besoin de l'insérer dans des pages individuelles:
Cette même étape peut également être accomplie en modifiant les «en-têtes de réponse HTTP» à l'aide du gestionnaire IIS pour le serveur IIS, l'ensemble du site Web ou des applications spécifiques.
la source
La solution de balise META ne fonctionnait pas pour nous, mais la définir dans l'en-tête de réponse a fait:
la source
chrome=1
propriété, stackoverflow.com/a/22059516/368691 . Gardez à l'esprit que Chrome Frame a été retiré. blog.chromium.org/2013/06/retiring-chrome-frame.htmlJuste quelques notes supplémentaires sur ce sujet basées sur mes expériences récentes. L'université pour laquelle je travaille pose des problèmes d'ordinateurs portables avec IE 8 en mode de compatibilité pour tous les sites intranet. J'ai essayé d'ajouter la balise meta pour désactiver ce mode pour les pages servies par mon site, mais IE a systématiquement ignoré cette balise. Comme Lance l'a mentionné dans son article, l'ajout d'un en-tête de réponse a résolu ce problème. Voici comment j'ai défini l'en-tête en fonction de la méthode passe-partout HTML5:
Pour que cet en-tête soit réellement envoyé, vous devez vous assurer que les mod_headers sont activés dans Apache. Si vous voulez vous assurer que ce mod est activé, placez-le dans une page qui peut exécuter php:
la source
IE8 utilise par défaut le mode standard pour l'intERnet et le mode excentrique pour l'intRAnet. La balise Meta HTML est ignorée si le doctype est défini sur xhtml transitionnel. La solution consiste à ajouter un en-tête HTTP dans le code. Cela a fonctionné pour nous. Maintenant, notre site intranet oblige IE8 à rendre l'application en mode standard.
Ajouté à PageInit de la classe de page de base (ASP.net C #):
référence: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
la source
Cela est dû au paramètre dans les paramètres de compatibilité IE qui stipule que tous les sites intranet doivent s'exécuter en mode de compatibilité. Vous pouvez décocher cela via une stratégie de groupe (ou simplement le décocher dans IE), ou vous pouvez définir les éléments suivants:
Apparemment, il n'est pas possible de modifier les paramètres d'affichage de compatibilité en tant que stratégie de groupe, mais c'est quelque chose qui peut peut-être être modifié dans le registre, cette balise META fonctionne bien pour moi, j'ai dû faire fonctionner l'attribut requis dans le cadre d'un formulaire html , cela fonctionnait dans Chrome et Firefox mais pas IE.
Voici un bon visuel de ce que les navigateurs prennent en charge chaque élément html 5 individuel.
http://html5readiness.com/
Remarquez le seul dénominateur commun Google Chrome, il prend tout en charge. J'espère que cela vous sera utile
la source
Insérez comme tout premier élément sous la balise.
Cela oblige IE à restituer la page dans la version physique d'IE et ignore le "paramètre de mode" du navigateur. Cela peut être défini dans les outils de développement, essayez de le changer pour une ancienne version d'IE à tester, cela doit être ignoré et la page doit être exactement la même.
la source
Si vous avez accès au serveur, la façon la plus fiable de le faire est de le faire sur le serveur lui-même, dans IIS. Accédez aux en-têtes de réponse HTTP IIS. Ajouter un nom: X-UA-Compatible
Valeur: IE = edge Cela remplacera votre navigateur et votre code.
la source
Si vous souhaitez que chaque page Web individuelle charge le contenu choisi et utilise asp.net. Il suffit de l'appliquer comme première balise sous la balise de titre dans Vues> partagé> Layout.cshtml
juste un conseil
la source