"X-UA-kompatibler" Inhalt = "IE = 9; IE = 8; IE = 7; IE = EDGE ”

233
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
  1. Was bedeutet diese Aussage eigentlich?

  2. Einige der Beispiele verwenden ,, um Versionen des IE zu trennen, während andere verwenden ;; welches ist richtig?

  3. Die Reihenfolge IE=9; IE=8; IE=7; IE=EDGEhat eine gewisse Bedeutung, das möchte ich wissen.

Edit : Ich benutze<!DOCTYPE html>

Kuttan Sujith
quelle
Ich denke, IE = 9 nicht geeignet fürX-UA-Compatible
Krish
3
Google empfiehlt es tatsächlich: developer.google.com/web-toolkit/doc/latest/DevGuideIE9
PlantTheIdea

Antworten:

328

Wenn Sie IE für Versionen von Internet Explorer 8 und höher unterstützen, gilt Folgendes:

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

Erzwingt, dass der Browser als Standard dieser bestimmten Version gerendert wird. Es wird für IE7 und niedriger nicht unterstützt.

Wenn Sie mit einem Semikolon trennen, werden Kompatibilitätsstufen für verschiedene Versionen festgelegt. Beispielsweise:

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

Rendert IE7 und IE8 als IE7, aber IE9 als IE9. Es ermöglicht unterschiedliche Abwärtskompatibilitätsstufen. Im wirklichen Leben sollten Sie jedoch nur eine der Optionen auswählen:

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

Dies ermöglicht ein viel einfacheres Testen und Warten. Obwohl die nützlichere Version davon im Allgemeinen Emulate verwendet:

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

Dafür:

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

Es erzwingt, dass der Browser das Rendern gemäß den Standards der neuesten Version ausführt.

Weitere Informationen finden Sie auf MSDN .

PlantTheIdea
quelle
9
die Reihenfolge IE = 9; IE = 8; IE = 7; IE = EDGE hat eine gewisse Bedeutung, das möchte ich wissen
Kuttan Sujith
Ich habe eine kleine Lücke in meinem Verständnis davon. Wenn mein Testziel IE8 ist, ich aber IE7 nicht beschädigen möchte, auf was würden Sie dieses Meta-Tag setzen? Und verwenden andere Browser dies?
Snekse
2
IE7 erkennt dies nicht, es wurde zuerst in IE8 implementiert. Der gesamte Verweis auf IE7 oben lautet, wenn Sie beispielsweise IE7 als Testgrundlage verwendet haben und möchten, dass alle moderneren Versionen von IE wie in IE7-Standards gerendert werden. Kein anderer Browser verwendet dieses Tag.
PlantTheIdea
1
IE10 rendert alte Web-Apps gut mit IE = 8 (YMMV), jedoch bricht die IE11-Emulation von IE8 ab. Diese UA: content="IE=8; IE=11"gibt IE10-Standards für den Browsermodus IE10 Compat Document Mode in IE10 und Edge für den Dokumentmodus in IE11 an. Eines der Probleme bei der Zuweisung von IE10- und IE11-UA besteht darin, dass Microsoft bedingte Kommentare entfernt hat .
Underverse
Basierend auf diesem Meta-Tag würde IE11 IE8 nicht emulieren, sondern IE11 annehmen (wie in der durch Semikolons getrennten Liste angegeben). Diese Liste würde auch den Rückfall auf IE8-Standards erklären, da IE10 die Existenz von IE11 nicht kannte, ebenso wie IE8 IE9-Standards nicht anwenden konnte. Haben Sie versucht, einfach zu verwenden content="IE=8"? Oder vorzugsweise content="IE=EmulateIE8"?
PlantTheIdea
4

In bestimmten Fällen kann es erforderlich sein, die Anzeige einer Webseite auf einen Dokumentmodus zu beschränken, der von einer früheren Version von Internet Explorer unterstützt wird. Sie können dies tun, indem Sie die Seite mit einem x-ua-kompatiblen Header versehen. Weitere Informationen finden Sie unter Festlegen älterer Dokumentmodi.
- https://msdn.microsoft.com/library/cc288325

Daher wird dieses Tag verwendet, um die Webseite zukunftssicher zu machen , sodass die ältere / kompatible Engine verwendet wird, um sie auf die vom Ersteller beabsichtigte Weise zu rendern.

Stellen Sie sicher, dass Sie überprüft haben, ob es mit der von Ihnen angegebenen IE-Version ordnungsgemäß funktioniert.

Ujjwal Singh
quelle