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?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
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>
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.
Beachten Sie den gemeinsamen Nenner Google Chrome, der alles unterstützt. Ich hoffe, dies ist hilfreich