383 Stimmen

IE-Kompatibilitätsmodus über Tags deaktivieren

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.

547voto

Pekka Punkte 429407

Es gibt den "Rand"-Modus .

<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 .

95voto

brandonjp Punkte 2978

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 als IE=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 der IE=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"

68voto

Amadiere Punkte 11025

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.

30voto

Erik Anderson Punkte 4471

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.

30voto

Peter Ruderman Punkte 11906

Ich bin überzeugt, dass dies der richtige Weg ist:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X