Je travaille sur un site intranet depuis plus de 6 mois où j'utilisais la doctype
balise méta ci-dessous html5 et de compatibilité Edge pour forcer Internet Explorer à ne pas émuler une ancienne version du navigateur, et cela a bien fonctionné.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>My title</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>
La raison pour laquelle je le faisais de cette façon est que l'endroit où je travaille utilise un paramètre de stratégie pour activer l'affichage de compatibilité pour tous les sites intranet, et cette approche utilisant le EDGE
paramètre a fonctionné dans Internet Explorer 9.
Il y a plus d'un mois, j'ai été mis à niveau vers Internet Explorer 11 et le site fonctionnait toujours comme prévu.
Aujourd'hui, cela a cessé de fonctionner comme prévu, je ne peux pas le dire avec certitude, mais je pense que la politique qui force la vue de compatibilité n'a pas été activée dans IE11 et maintenant elle l'est ... et depuis que cela a été activé, la balise meta de compatibilité n'est plus faire ce qui est attendu, et ce site est exécuté en mode Entreprise qui émule IE8.
Est-ce que quelqu'un sait comment résoudre ce problème et forcer IE11 à être utilisé sur un site intranet lorsque la compatibilité «Mode entreprise» est appliquée? et ne peut pas être désactivé via les paramètres du navigateur?
ÉDITER
Je viens d'essayer d'ajouter un en-tête personnalisé dans mon web.config comme expliqué dans cette réponse https://stackoverflow.com/a/18257208/98706
et cela n'a pas fonctionné pour moi, je reçois toujours le message ci-dessous dans la console de la barre d'outils du développeur de
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
C'est comme si la version 8 était traitée comme edge
lorsque ce paramètre de compatibilité intranet est activé dans IE11.
Cet article: https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---disabling-compatability-mode explique bien cela, je n'ai pas encore essayé de définir cet en-tête via le code et nos utilisateurs n'ont pas accès pour modifier les paramètres de leur navigateur. Aucune des autres modifications n'a encore fonctionné.
METTRE À JOUR
Veuillez consulter mon commentaire sur cet article sur la différence entre le mode Entreprise et le mode de compatibilité, car c'est important.
Réponses:
Assure-toi:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
est la première
<meta>
balise de votre page, sinon IE risque de ne pas la respecter.Le problème peut également être que IE utilise le mode Entreprise pour ce site Web:
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
la source
Ce problème est généralement causé par le placement de l'URL du site Web / intranet dans l'un des éléments suivants:
(avec Afficher les sites intranet dans le paramètre Affichage de compatibilité activé)
Sur les réseaux d'entreprise, ces paramètres d'affichage de compatibilité sont souvent contrôlés de manière centralisée via une stratégie de groupe . Dans votre cas, le mode Entreprise semble être le coupable.
Malheureusement, le réglage de META
X-UA-Compatible
ne remplacera pas cela.Pour les utilisateurs finaux
Parfois, la seule façon pour les utilisateurs finaux de contourner cela est d'appuyer sur F12 et de changer le mode de document sous l' onglet Émulation . Cependant, ce paramètre n'est pas permanent et peut revenir une fois les outils de développement fermés.
Vous pouvez également essayer d'exclure votre site de la zone Intranet. Mais la liste des domaines qui appartiennent à la zone Intranet est généralement également contrôlée par la stratégie de groupe, de sorte que les chances que cela fonctionne sont minces.
Pour voir la liste des domaines appartenant à la zone Intranet, accédez à:
Outils -> Options Internet -> Sécurité -> Sites -> Avancé
Si la liste contient votre sous-domaine et est grisée, vous ne pourrez pas remplacer la vue de compatibilité tant que votre administrateur réseau ne l'autorisera pas.
Vous devez vraiment contacter votre administrateur réseau pour autoriser la modification des paramètres d'affichage de compatibilité dans la stratégie de groupe.
Pour les administrateurs réseau
Le chargement du site Web avec les outils de développement ouverts (F12) signalera souvent la raison pour laquelle IE passe à un mode plus ancien.
Les 3 paramètres mentionnés ci-dessus sont généralement contrôlés via la stratégie de groupe, bien qu'ils puissent parfois être remplacés sur les machines des utilisateurs.
Si le mode Entreprise est le problème (comme cela semble être le cas pour l'affiche originale), les deux articles suivants peuvent être utiles:
la source
Pour ceux qui créent un projet ASP.NET MVC, assurez-vous d'ajouter:
tag dans votre page de mise en page (modèle). Je viens de passer deux heures à déboguer et à peaufiner, pour me rendre compte que je n'avais ajouté que cette balise Meta dans mes pages enfants. Dès que je l'ai ajouté à ma page de mise en page, le navigateur s'est parfaitement chargé en mode EDGE.
la source
La réponse marquée est la bonne. Cependant, Cher, vous devriez faire un suivi avec vos groupes d'administrateurs AD et de bureau. Ils abusent de la liste des sites IE11 Enterprise Mode. Microsoft n'a PAS l'intention de l'utiliser pour tous les sites intranet d'une organisation. Ce serait propager le paramètre existant «rendre tous les sites intranet en mode de compatibilité» qui est le fléau de l'avancement des sites Web d'entreprise dans le monde entier.
Il est destiné à être implémenté comme une «liste noire», avec la poignée de sites qui nécessitent en fait un mode de navigateur hérité répertorié dans la liste du mode entreprise avec leurs exigences de rendu spécifiées. Tous les autres sites de votre organisation sont ensuite libérés pour utiliser Edge. Les personnes de votre organisation qui l'ont implémenté avec tous les sites intranet inclus au départ ont complètement mal compris comment le mode Entreprise est censé être implémenté.
la source
La question est un peu ancienne mais je viens de résoudre un problème très similaire. Nous avons plusieurs sites intranet ici, y compris celui dont je suis responsable, et les autres nécessitent un mode de compatibilité ou ils se cassent. Pour cette raison, les règles de site par défaut IE en mode de compatibilité sur les sites intranet. J'améliore mes propres affaires et n'en ai plus besoin; en fait, certaines des fonctionnalités que j'essaie d'utiliser ne semblent pas correctes en mode compat. J'utilise la balise meta IE-Edge comme vous.
IE suppose que les sites Web sans adresse complète sont intranet et agit en conséquence. Dans cet esprit, je viens de modifier les liaisons dans IIS pour n'écouter que l'adresse complète, puis j'ai créé un site Web factice qui écoutait l'adresse non qualifiée. Le second redirige tout le trafic vers l'adresse complète, faisant croire à IE qu'il s'agit d'un site externe. Le site s'affiche correctement avec ou sans la case Mode de compatibilité sur les sites intranet cochée.
la source
C'est un vieux problème avec de bonnes informations. Mais ce que je viens de trouver, c'est que l'utilisation d'un FQDN désactive le mode de compatibilité dans IE 9 - 11. Exemple. J'ai le problème de
compatibilité avec http: // lrmstst01: 8080 / JavaWeb / login.do
mais les problèmes disparaissent avec
http://lrmstst01.mydomain.int:8080/JavaWeb/login.do
NB: Le .int fait partie de notre domaine interne
la source
Déplacez-le vers la zone Sites de confiance en l'ajoutant à une liste de sites de confiance ou à un paramètre local. Cela le déplacera hors de la zone intranet et ne sera pas rendu dans Compat. Vue.
la source
Ajoutez la propriété ci-dessous dans le fichier web.config pour les sites IIS. Cela a fonctionné pour moi sur mon intranet dans IE11.
la source
J'ai résolu ce problème en redirigeant l'utilisateur vers le FQDN du serveur hébergeant l'intranet.
IE utilise probablement le pire algorithme du monde pour détecter les sites "intranet" ... en effet, spécifier server.domain.tld résout le problème pour moi.
Oui, vous avez bien lu, IE détecte les sites intranet non par adresse IP privée, comme le ferait tout développeur ayant entendu parler de TCP / IP, non, par la partie "hôte" de l'URL, si elle n'a pas de partie domaine, doit être interne.
Effrayant de savoir que les développeurs IE ne comprennent pas les concepts TCP / IP les plus basiques.
Notez que c'était chez une GRANDE entreprise cliente, les amener à changer de GPO pour vous, c'est comme essayer de déplacer les Alpes de 4 mètres vers l'est, cela n'arrivera pas.
la source
Pour ce que ça vaut, j'ai également eu le problème dans IE11:
<!DOCTYPE html>
etIE=Edge
mentionnés dans la question<head>
élémentAu bout d'un moment, j'ai découvert que:
En - tête HTTP :
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
maisJavaScript :
window.navigator.userAgent === 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko'
J'ai donc fini par faire le contrôle côté client.
Et BTW, quant à lui, la vérification de l'agent utilisateur n'est plus recommandée. Voir https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent (mais il pourrait y avoir un bon cas)
la source