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.

20voto

Lance Anderson Punkte 483

Die Lösung mit dem Meta-Tag hat bei uns nicht funktioniert, aber das Einfügen in die Kopfzeile der Antwort schon:

header('X-UA-Compatible: IE=edge,chrome=1');

11voto

rswank Punkte 133

Der IE8 verwendet standardmäßig den Standardmodus für das intERnet und den Quirks-Modus für das intRAnet. Das HTML-Meta-Tag wird ignoriert, wenn Sie den Doctype auf xhtml transitional eingestellt haben. Die Lösung besteht darin, einen HTTP-Header im Code hinzuzufügen. Das hat bei uns funktioniert. Jetzt zwingt unsere Intranet-Site den IE8 dazu, die Anwendung im Standardmodus darzustellen.

Hinzugefügt zu PageInit der Basisseitenklasse (ASP.net C#):

Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");

Hinweis: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html

10voto

Cloudkiller Punkte 1586

Nur noch ein paar Anmerkungen zu diesem Thema, die auf meinen jüngsten Erfahrungen beruhen. Die Universität, für die ich arbeite, gibt Laptops aus, bei denen IE 8 für alle Intranet-Sites auf Kompatibilitätsmodus eingestellt ist. Ich habe versucht, den Meta-Tag hinzuzufügen, um diesen Modus für Seiten zu deaktivieren, die von meiner Website bereitgestellt werden, aber der IE hat diesen Tag konsequent ignoriert. Wie Lance in seinem Beitrag erwähnte, konnte das Problem durch Hinzufügen eines Antwort-Headers behoben werden. So habe ich den Header auf der Grundlage der HTML5-Boilerplate-Methode eingestellt:

<IfModule mod_headers.c>
  Header set X-UA-Compatible "IE=edge,chrome=1"
  # mod_headers can't match by content-type, but we don't want to send this header on *everything*...
  <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
    Header unset X-UA-Compatible
  </FilesMatch>
</IfModule>

Damit diese Kopfzeile tatsächlich gesendet wird, müssen Sie sicherstellen, dass Sie mod_headers im Apache aktiviert haben. Wenn Sie sichergehen wollen, dass Sie diese Mod aktiviert haben, fügen Sie dies in eine Seite ein, auf der php ausgeführt werden kann:

<pre>
<?php
    print_r(apache_get_modules());
?>
</pre>

3voto

Crouch Punkte 796

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" />

Anscheinend ist es nicht möglich, die Einstellungen der Kompatibilitätsansicht als Gruppenrichtlinie zu ändern, aber es ist etwas, das vielleicht in der Registrierung geändert werden kann, dieses Meta-Tag funktioniert bei mir gut, ich musste das erforderliche Attribut als Teil eines HTML-Formulars arbeiten lassen, es funktionierte in Chrome und Firefox, aber nicht im IE.

Hier ist eine schöne Grafik, die zeigt, welche Browser jedes einzelne HTML 5-Element unterstützen.

http://html5readiness.com/

Beachten Sie den gemeinsamen Nenner Google Chrome, der alles unterstützt. Ich hoffe, dies ist hilfreich

1voto

stu Punkte 186

Wenn Sie Zugriff auf den Server haben, ist es am zuverlässigsten, dies auf dem Server selbst, in IIS, zu tun. Gehen Sie zu IIS HTTP Response Headers. Fügen Sie hinzu. Name: X-UA-kompatibel
Wert: IE=Edge Damit werden Ihr Browser und Ihr Code außer Kraft gesetzt.

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