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.