META-Tags und Sperren für zukünftige Kompatibilität

Hinweis: Diese Dokumentation ist vorläufig und kann geändert werden.

Dokumentkompatibilität ist für Webentwickler ein wichtiger Faktor. Windows Internet Explorer 8 führt Dokumentkompatibilitätsmodi ein, die es Webentwicklern ermöglichen, den Browser anzuweisen, ihre Seiten genauso zu rendern, wie ältere Versionen dies tun würden, wodurch die Entwickler wählen können, wann aktualisiert werden soll.

In diesem Dokument werden die von Windows Internet Explorer 8 unterstützten Dokumentkompatibilitätsmodi beschrieben, und es wird erklärt, wie sie mithilfe benutzerdefinierter Header auf Seitenbasis oder auf Websitebasis implementiert werden können. Durch Implementieren des geeigneten Kompatibilitätsmodus kann für eine Website die Kompatibilität mit Windows Internet Explorer 8 und weitere Versionen sichergestellt werden.

Verschiedene Kompatibilitätsmodi

Windows Internet Explorer 8 unterstützt einige Kompatibilitätsmodi, die verschiedene Funktionen unterstützen und sich darauf auswirken können, wie Inhalt angezeigt wird. Beispielsweise

rendert der IE5-Modus Inhalt so, als würde er durch den Quirks-Modus von Windows Internet Explorer 7 angezeigt werden. Dieser Wiedergabemodus ähnelt sehr der Art, in der Windows Internet Explorer 5 Inhalt angezeigt hat.

Der IE7-Modus rendert Inhalt so, als würde er durch den Standards-Modus von Windows Internet Explorer 7 angezeigt werden, wobei es keine Rolle spielt, ob die Seite eine <!DOCTYPE>-Direktive enthält.

Der EmulateIE7-Modus weist Windows Internet Explorer an, die <!DOCTYPE>-Direktive zu verwenden, um zu bestimmen, wie Inhalt gerendert werden soll. Direktiven des Standards-Modus werden im Standards-Modus von Windows Internet Explorer 7 angezeigt und Direktiven des Quirks-Modus werden im IE5-Modus angezeigt. Im Gegensatz zum IE7-Modus beachtet der EmulateIE7-Modus die <!DOCTYPE>-Direktive. Für viele Websites ist dies der bevorzugte Kompatibilitätsmodus.

Der IE8-Modus bietet das höchste verfügbare Maß an Unterstützung von Branchenstandards einschließlich der W3C Cascading Style Sheets Level 2.1-Spezifikation und der W3C Selectors-API sowie eine beschränkte Unterstützung der W3C Cascading Style Sheets Level 3-Spezifikation (Arbeitsentwurf) .

Der Edge-Modus weist Windows Internet Explorer an, Inhalt im höchsten verfügbaren Modus anzuzeigen, wodurch das Paradigma des „Einschließens“ aufgebrochen wird. Bei Windows Internet Explorer 8 entspricht dies dem IE8-Modus. Wenn eine hypothetische zukünftige Version von Windows Internet Explorer einen höheren Kompatibilitätsmodus unterstützen würde, dann würden die auf den Edge-Modus eingestellten Seiten im höchsten Modus angezeigt werden, der von dieser Version unterstützt wird. Diese Seiten würden jedoch weiterhin im IE8-Modus wiedergegeben werden, wenn sie mit Windows Internet Explorer 8 angezeigt werden würden. Aufgrund der möglichen unerwarteten Ergebnisse, die das Rendern von Seiteninhalten in zukünftigen Versionen von Windows Internet Explorer haben könnte, wird empfohlen, dass Webentwickler den Edge-Modus nur zum Testen von Seiten und für andere Verwendungszwecke außerhalb der Produktion nutzen.

Festlegen von Kompatibilitätsmodi auf Seitenbasis

Um einen Dokumentmodus für Ihre Webseiten festzulegen, fügen Sie mithilfe des META -Elements einen X-UA-kompatiblen httpequiv -Header in Ihrer Webseite ein. Im folgenden Beispiel wird EmulateIE7-Moduskompatibilität eingestellt.

<html>
   <head>
   <!-- Mimic Internet Explorer 7 -->
      <title>My Web Page</title>
      <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
   </head>
   <body>
      <p>Content goes here.</p>
   </body>
</html>

Das Content-Attribut gibt den Modus für die Seite an. Wenn beispielsweise das Verhalten von Windows Internet Explorer 7 nachgeahmt werden soll, dann geben Sie „IE=EmulateIE7“ an. Entsprechend können Sie „IE=5“, „IE=7“ oder „IE=8“ angeben, um einen dieser Kompatibilitätsmodi auszuwählen. Sie können auch „IE=edge“ spezifizieren, sodass Windows Internet Explorer 8 angewiesen wird, den höchsten Modus zu verwenden, der verfügbar ist.

Beim X-UA-kompatiblen Header wird nicht zwischen Groß- und Kleinschreibung unterschieden, aber er muss im Header der Webseite (im Abschnitt „HEAD“ ) vor allen anderen Elementen außer dem TITLE-Element und anderen META-Elementen stehen.

Festlegen von Kompatibilitätsmodi auf Websitebasis

Sie können für Ihre Website einen Dokumentmodus festlegen, indem Sie mit Ihrem Webserver einen benutzerdefinierten HTTP-Antwortheader für die Website definieren. Ein HTTP-Antwortheader besteht aus den Informationen, die ein Webserver der Datei beifügt, die er als Reaktion auf eine HTTP-Anforderung an Ihren Browser sendet. Diese Informationen umfassen in der Regel Angaben zum Erstellungsdatum, der Größe und dem Typ der Datei, die zurückgesendet wird.

In den folgenden Dokumenten wird beschrieben, mit welchen Schritten Sie Ihren Webserver so konfigurieren können, dass sämtlichen Webseiten ein benutzerdefinierter HTTP-Antwortheader angehängt wird. Dies bewirkt, dass Windows Internet Explorer 8 einen bestimmten Dokumentkompatibilitätsmodus wie z. B. EmulateIE7 verwendet.

Wenn Sie mit Ihrem Webserver einen Standarddokumentkompatibilitätsmodus festlegen, können Sie diese Einstellung überschreiben, indem Sie auf einer bestimmten Webseite einen anderen Dokumentkompatibilitätsmodus festlegen. Der innerhalb der Webseite festgelegte Modus hat Vorrang vor dem durch den Server festgelegten Modus.

Ermitteln des Dokumentkompatibilitätsmodus mithilfe eines Skripts

Um mit Windows Internet Explorer 8 den Dokumentkompatibilitätsmodus einer Webseite zu ermitteln, verwenden Sie die Eigenschaft documentMode des document -Objekts. Wenn Sie beispielsweise in der Adressleiste von Windows Internet Explorer 8 Folgendes eingeben, wird der Dokumentmodus der aktuellen Webseite angezeigt.

javascript:alert(document.documentMode);

Die Eigenschaft „documentMode“ gibt einen numerischen Wert zurück, der dem Dokumentkompatibilitätsmodus der Seite entspricht. Wenn beispielsweise für eine Seite ausgewählt wurde, den IE8-Modus zu unterstützen, gibt „documentMode“ den Wert 8 zurück.

Hinweis: Die in Windows Internet Explorer 6 eingeführte Eigenschaft compatMode wurde zu Gunsten der in Windows Internet Explorer 8 eingeführten Eigenschaft „documentMode“ verworfen. Anwendungen, die derzeit auf „compatMode“ beruhen, werden in Windows Internet Explorer 8 weiterhin funktionieren, sollten aber dahingehend aktualisiert werden, in Zukunft „documentMode“ zu verwenden.

Wenn Sie Javascript verwenden möchten, um den Kompatibilitätsmodus eines Dokuments zu ermitteln, fügen Sie Code ein, der ältere Versionen von Windows Internet Explorer unterstützt, wie im folgenden Beispiel gezeigt wird.

engine = null;
if (window.navigator.appName == "Microsoft Internet Explorer")
{
   // This is an IE browser. What mode is the engine in?
   if (document.documentMode) // IE8
      engine = document.documentMode;
   else // IE 5-7
   {
      engine = 5; // Assume quirks mode unless proven otherwise
      if (document.compatMode)
      {
         if (document.compatMode == "CSS1Compat")
            engine = 7; // standards mode
      }
   }
   // the engine variable now contains the document compatibility mode.
}

Das hier verwendete Dokumentobjekt repräsentiert das HTML-Dokument in einem vorgegebenen Browserfenster und kann dazu verwendet werden, Inhalt zu untersuchen, zu ändern oder einem HTML-Dokument hinzuzufügen und innerhalb dieses Dokuments Ereignisse zu verarbeiten.

Ermitteln des Dokumentkompatibilitätsmodus mithilfe bedingter Kommentare

Wenn Sie nur auf Windows Internet Explorer abzielen, zeigt Ihnen das folgende Codebeispiel, wie Sie bedingte Kommentare verwenden können, um aktuelle oder veraltete Versionen zu unterstützen.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
   <head>
      <title>Test Page</title>
      <meta http-equiv="X-UA-Compatible" content="IE=8"/>
      <!--[if gte IE 8]>
      <style type="text/css">
      body {
       color: #0000ff;
       background-color: #000000;
      }
      </style>
      <![endif]-->
      <!--[if lt IE 8]>
      <style type="text/css">
      body {
       color: #000000;
       background-color: #ffffff;
      }
      </style>
      <![endif]-->
   </head>
   <body>
      <h1>
      <!--[if gte IE 8]>
      Chapter 1.
      <![endif]-->
      First Chapter
      </h1>
      <h1>
      <!--[if gte IE 8]>
      Chapter 2.
      <![endif]-->
      Second Chapter
      </h1>
      Text any version will see.
   </body>
</html>

Weitere Informationen zur Versionsverwaltung und zu Windows Internet Explorer-Modi finden Sie unter Definieren von Dokumentkompatibilität.