Ich arbeite für einen Kunden, der den Kompatibilitätsmodus auf allen Intranetseiten erzwingt. Ich frage mich, ob es ein Tag gibt, das ich in meinen HTML-Code einfügen kann, um den Kompatibilitätsmodus zu deaktivieren.
Antworten
Zu viele Anzeigen?<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My Web Page</title>
</head>
<body>
<p>Content goes here.</p>
</body>
</html>
Von der verlinkten MSDN-Seite:
Der Edge-Modus weist den Windows Internet Explorer an, Inhalte im höchsten verfügbaren Modus anzuzeigen, wodurch das "Lock-in"-Paradigma tatsächlich durchbrochen wird. Bei Internet Explorer 8 entspricht dies dem IE8-Modus. Wenn eine (hypothetische) zukünftige Version von Internet Explorer einen höheren Kompatibilitätsmodus unterstützt, werden Seiten, die auf den Edge-Modus eingestellt sind, im höchsten von dieser Version unterstützten Modus angezeigt; dieselben Seiten werden jedoch weiterhin im IE8-Modus angezeigt, wenn sie mit Internet Explorer 8 angezeigt werden.
Der "Edge"-Modus wird jedoch für den Einsatz in der Produktion nicht empfohlen:
Es wird empfohlen, dass Webentwickler die Verwendung des Edge-Modus auf Testseiten und andere nicht produktive Verwendungen beschränken, da das Rendern von Seiteninhalten in zukünftigen Versionen von Windows Internet Explorer zu unerwarteten Ergebnissen führen kann.
Ich verstehe ehrlich gesagt nicht ganz, warum. Aber hier steht, dass der beste Weg im Moment die Verwendung von IE=8
.
Nach vielen Stunden der Fehlersuche... Hier sind einige schnelle Highlights, die uns geholfen haben, von der X-UA-Compatible
docs: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16
Verwendung von <meta http-equiv="X-UA-Compatible" content=" _______ " />
-
En Standard-Benutzer-Agent Modi (die nicht emulierten Modi) ignorieren
<!DOCTYPE>
Direktiven in Ihrer Seite zu verwenden und auf der Grundlage der von dieser IE-Version unterstützten Standards zu rendern (z. B.,IE=8
hält sich besser an Tabellenrandabstände und einige Pseudoselektoren alsIE=7
). -
In der Erwägung, dass die Emulieren Sie Modi sagen dem IE, dass er jedem
<!DOCTYPE>
Direktiven in Ihrer Seite, wobei der Standardmodus auf der von Ihnen gewählten Version und der Mackenmodus auf derIE=5
-
Mögliche Werte für die
content
Attribute sind:content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
Wenn Sie mit einer Seite in der Intranet-Zone arbeiten, kann es vorkommen, dass der IE9, egal was Sie tun, in den IE7-Kompatibilitätsmodus wechselt.
Dies liegt an der Einstellung in den Kompatibilitätseinstellungen des IE, die besagt, dass alle Intranet-Sites im Kompatibilitätsmodus ausgeführt werden sollten. Sie können diese Einstellung über eine Gruppenrichtlinie deaktivieren (oder sie einfach nur im IE deaktivieren), oder Sie können Folgendes einstellen:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Dies funktioniert (wie in anderen Antworten beschrieben), sieht aber auf den ersten Blick vielleicht nicht so aus: sie muss vor der Deklaration der Stylesheets erfolgen . Wenn Sie das nicht tun, wird es ignoriert.
Wie in diesem Artikel vorgeschlagen Antwort Zu einer verwandten Frage: Der "Edge"-Modus kann in der Web.Config-Datei eingestellt werden. Dadurch wird er auf alle von der Anwendung zurückgegebenen HTML-Dateien angewendet, ohne dass er in einzelne Seiten eingefügt werden muss:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Derselbe Schritt kann auch wie folgt durchgeführt werden Änderung der "HTTP Response Headers" mit dem IIS Manager für den IIS-Server, die gesamte Website oder bestimmte Anwendungen.
- See previous answers
- Weitere Antworten anzeigen