So deaktivieren Sie die Kompatibilitätsansicht im IE

76

Ich frage mich, wie Sie verhindern können, dass Benutzer von IE 8 in den Kompatibilitätsmodus wechseln.

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

Ich habe dieses Tag gefunden und ich denke, dies zwingt die Leute dazu, im IE-8-Modus zu bleiben, aber ich bin mir nicht sicher und kann es nicht überprüfen, da ich IE 9 habe.

Wenn sich Personen im IE 9-Modus befinden, zwinge ich sie, nicht in den IE 8- oder IE 7-Kompatibilitätsmodus zu wechseln.

Ich habe versucht, die obige Zeile in meinen Code einzufügen und bin zu IE 9 -> Extras -> Kompatibilitätsansicht (ausgegraut) gegangen.

"Einstellungen für die Kompatibilitätsansicht" wurden jedoch nicht abgeblendet, und es scheint, dass Sie die Site dort hinzufügen können.

Sollte das nicht deaktiviert werden?

chobo2
quelle
15
@ Sparky672 - ja das tue ich. Ich unterstütze IE 7 nicht und die Anzeige eines Browsers ist veraltet. Was ich durch Usability-Studien herausgefunden habe, geben die meisten Leute nicht bekannt, dass sie sich möglicherweise im Kompatibilitätsmodus befinden (und tatsächlich keine Kenntnis davon haben, dass sie ihn aktivieren), und wenn Sie ihnen mitteilen, dass ihr Browser veraltet ist und sie glauben, IE 8 zu verwenden ( neuesten Browser zum Zeitpunkt der Studie) sie werden sehr schnell verwirrt. Die beste Lösung ist, sie zurück zum IE 8/9 zu zwingen (zu dem, was sie wahrscheinlich sowieso laufen lassen)
chobo2

Antworten:

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

sollte Ihre Seite zwingen, in IE8-Standards zu rendern. Der Benutzer kann die Site zur Kompatibilitätsliste hinzufügen, aber dieses Tag hat Vorrang.

Eine schnelle Möglichkeit zur Überprüfung besteht darin, die Seite zu laden und die folgende Adressleiste einzugeben:

javascript:alert(navigator.userAgent) 

Wenn Sie IE7 in der Zeichenfolge sehen, wird es im Kompatibilitätsmodus geladen, andernfalls nicht.

Sriranga Chidambara
quelle
2
Was passiert, wenn sie IE 9 verwenden, werden sie dadurch auf IE 8 gesetzt?
Chobo2
1
Wenn der Benutzer es in IE9 verwendet, wird es im IE8-Standardmodus angezeigt. Sie können die F12 Developer Toolbar in IE9 auch verwenden, um sie zu überprüfen.
Sriranga Chidambara
92
Verwenden Sie besser <meta http-equiv = "X-UA-kompatibel" content = "IE = edge" /> Auch wenn die Site auf einem von Microsoft als "Intranet" betrachteten Host gehostet wird, wird sie weiterhin in der Kompatibilität angezeigt Aussicht. Die einzige Möglichkeit, dies zu überschreiben, besteht darin, das Kontrollkästchen "Intranetsites in der Kompatibilitätsansicht anzeigen" in den Einstellungen "Extras - Kompatibilitätsansicht" zu deaktivieren. Diese Standardeinstellung in IE8 + stinkt wirklich.
Oldwizard
5
Ich stimme dem zu. Ich bin gerade von der Standardeinstellung "Intranetsites in Kompatibilitätsansicht anzeigen" (in meinem Fall in IE9) etwas betroffen.
Derek Morrison
4
Ich habe das Kontrollkästchen "Intranetsites in der Kompatibilitätsansicht anzeigen" aktiviert, aber das X-UA-kompatible Meta-Tag scheint es zu überschreiben.
Justin Skiles
91

Sie müssen lediglich die Deaktivierung von CM im IE erzwingen. Fügen Sie einfach diesen Code ein (in IE9 und unter cm wird deaktiviert):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

Quelle: http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html

FelixFett
quelle
3
Dies hat mich mit Twitter Bootstrap & IE-Kompatibilität gerettet. Zu Ihrer Information - Dies muss das ERSTE Meta-Tag sein.
Nope_Four
11
Ist das nicht dasselbe wie <meta http-equiv = "X-UA-kompatibel" content = "IE = edge" />?
Eug
4
Achten Sie darauf, vor diesem Tag keine bedingten Kommentare zu verwenden. Sonst funktioniert es nicht! Fand den Hinweis dort: stackoverflow.com/questions/3449286/…
Karl Adler
73

Dies sollte ausreichen, um einen IEBenutzer zu zwingen , den Kompatibilitätsmodus in einer beliebigen IEVersion zu löschen :

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

Es gibt jedoch einige Einschränkungen, die Sie beachten sollten:

  • Das obige Meta-Tag sollte als erstes Tag darunter enthalten sein<head> . Nur das <title>Tag darf darüber platziert werden.

Wenn Sie dies nicht tun, wird bei IE9Dev Tools eine Fehlermeldung angezeigt:X-UA-Compatible META tag ignored because document mode is already finalized.

  • Wenn Sie möchten, dass dieses Markup überprüft wird, denken Sie daran, das metaTag nicht nur mit, />sondern mit einem zu schließen >.

  • Der IE11Kantenmodus ist zunächst der bevorzugte Dokumentmodus. Verwenden Sie zur Unterstützung / Aktivierung die HTML5-Dokumenttypdeklaration <!doctype html>.

  • Wenn Sie Webfonts unterstützen müssen IE7, stellen Sie sicher, dass Sie verwenden <!DOCTYPE html>. Ich habe es getestet und festgestellt, dass das Rendern von Webfonts IE7bei der Verwendung ziemlich unzuverlässig wurde <!doctype html>.

Die Verwendung von Google Chrome Frame ist beliebt, wird aber leider irgendwann in diesem Monat, Januar 2014, eingestellt.

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1">

Umfangreiche verwandte Informationen hier . Die Spitze auf mich als den ersten Meta - Tag ist auf eine zuvor erwähnten Quelle hier , die aktualisiert wurde.

Wallace Sidhrée
quelle
9

Wenn Sie ASP.NET MVC verwenden, habe ich Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")in einem Codeblock in _Layout festgestellt, dass es recht gut funktioniert:

@Code
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")
End Code
<!DOCTYPE html>
everything else
Sami Lamti
quelle
5

Die Antwort von FelixFett hat bei mir funktioniert. Wiederholen:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />

Ich habe es als erstes 'Meta'-Tag in meinem Code. Ich habe 10 und 11 hinzugefügt, da dies Versionen sind, die jetzt für Internet Explorer veröffentlicht werden.

Ich hätte seine Antwort nur kommentiert, aber ich habe keinen ausreichend hohen Ruf ...

Astburyj
quelle
3

Eine andere Möglichkeit, dies in Apache zu erreichen, besteht darin, die folgenden Zeilen in .htaccessden Stammordner Ihrer Website (oder in die Konfigurationsdateien von Apache) einzufügen.

BrowserMatch "MSIE" isIE
BrowserMatch "Trident" isIE
Header set X-UA-Compatible "IE=edge" env=isIE

Dies setzt voraus, dass Sie die Module mod_headersund mod_setenvifaktiviert haben.

Der zusätzliche HTTP-Header wird nur an IE-Browser und an keinen der anderen gesendet.

Simon East
quelle
1

In JSF habe ich verwendet:

<h:head>
    <f:facet name="first">
        <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
    </f:facet>

    <!-- ... other meta tags ... -->

</h:head>
Miso
quelle
0

Durch Hinzufügen eines Tags zu Ihrer Seite wird die Benutzeroberfläche in der Internet-Systemsteuerung nicht gesteuert (das Dialogfeld, das angezeigt wird, wenn Sie Extras -> Optionen auswählen). Wenn Sie sich Ihre Homepage ansehen, bei der es sich um google.com, msn.com, about: blank oder example.com handeln kann, kann die Internet-Systemsteuerung den Inhalt Ihrer Seite nicht ermitteln und wird nicht heruntergeladen es im Hintergrund.

Schauen Sie sich dieses Dokument auf MSDN an, in dem der Kompatibilitätsmodus und das Deaktivieren für Ihre Site erläutert wurden.

i_am_jorf
quelle