Conditional Comments

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche

Conditional Comments (kurz: CC; englisch für: Bedingte Kommentare) sind Kontrollstrukturen in HTML-Dokumenten, die derzeit nur vom Microsoft Internet Explorer und Programmen aus der Microsoft Office-Reihe (z. B. Microsoft Word) interpretiert werden.

Sie bieten dem Autor die Möglichkeit, die Auswertung von HTML in diesen Programmen – generell oder nur in bestimmten Versionen – zu beeinflussen, ohne dass es Auswirkungen auf die übrigen Webbrowser oder die Standardkonformität des Quellcodes hätte.

Inhaltsverzeichnis

[Bearbeiten] Syntax (HTML)

Die Verwendung erfolgt analog zu echten HTML-Kommentaren (<!-- Kommentar -->):

<!--[if Bedingung]> Anweisungen <![endif]-->

Normale User Agents interpretieren diese Struktur als syntaktisch korrekten Kommentar und ignorieren den Inhalt.

Der Internet Explorer hingegen prüft die formulierte Bedingung und interpretiert den Inhalt. Es ist durch vorgegebene Vergleichsoperatoren und -werte möglich, unterschiedliche Versionen des Programms anzusprechen.

[Bearbeiten] Werte (Auswahl)

Wert Funktion Beispiel
!IE wenn kein Internet Explorer <!--[if !IE]>
IE wenn Internet Explorer <!--[if IE]>
IE 5 wenn Internet Explorer Version 5.x <!--[if IE 5]>
IE 5.0 wenn Internet Explorer Version 5.0 <!--[if IE 5.0]>
IE 5.5 wenn Internet Explorer Version 5.5 <!--[if IE 5.5]>
IE 6 wenn Internet Explorer Version 6 <!--[if IE 6]>
IE 7 wenn Internet Explorer Version 7 <!--[if IE 7]>
mso wenn Microsoft Office <!--[if mso]>
mso 9 wenn Microsoft Office 2000 (Office 2001 auf Mac OS) <!--[if mso 9]>
mso 10 wenn Microsoft Office 2002 (Office X auf Mac OS) <!--[if mso 10]>
mso 11 wenn Microsoft Office 2003 (Office 2004 auf Mac OS) <!--[if mso 11]>
mso 12 wenn Microsoft Office 2007 (Office 2008 auf Mac OS) <!--[if mso 12]>
vml wenn VML unterstützt wird <!--[if vml]>

Wenn es nötig wird, können Bedingungen auch geklammert werden.

[Bearbeiten] Operatoren (Auswahl)

Operator Funktion Beispiel
! Nicht-Operator <!--[if !(IE 6)]> (wenn nicht IE 6)
lt Kleiner-als-Operator <!--[if lt IE 6]> (wenn kleiner als IE 6)
lte Kleiner-gleich-Operator <!--[if lte IE 6]> (wenn kleiner als oder gleich IE 6)
gt Größer-als-Operator <!--[if gt IE 6]> (wenn größer IE 6)
gte Größer-gleich-Operator <!--[if gte IE 6]> (wenn größer als oder gleich IE 6)
& Und-Operator <!--[if mso & !vml]> (wenn Office-Programm ohne VML-Unterstützung)
| Oder-Operator <!--[if mso | ie]> (wenn Office-Programm oder IE)

[Bearbeiten] Umkehrung

Normalerweise verstecken bedingte Kommentare Anweisungen vor User-Agents, die diese nicht verstehen. Microsoft spricht hiebei von „downlevel-hidden“, also „vor älteren Browsern versteckten“, Kommentaren. Diese Wirkung läßt sich aber auch umkehren (sog. „downlevel-revealed“-Kommentare):

<![if lt IE 7]> Anweisungen für IE vor Version 7 und andere Browser <![endif]>

Hierbei handelt es sich nicht mehr um einen HTML-Kommentar, sondern um syntaktisch fehlerhaftes und somit invalides Markup. Die betreffende Bedingung wird nur vom Internet Explorer ausgewertet. Andere Browser interpretieren die Zeichenfolgen <![if lt IE 7]> und <![endif]> als ungültige Tags und stellen nur den Inhalt dazwischen dar. Syntaktisch korrekt und valide nach W3C ist folgende Variante:

<!--[if lt IE 7]><!--> Anweisungen für IE vor Version 7 und andere Browser <!--<![endif]-->

[Bearbeiten] Syntax (JScript)

Seit dem Internet Explorer 4 (JScript 3.0) gibt es einen ähnlichen Mechanismus für JavaScript. Der im IE verwendete JScript-Interpreter wertet folgende Syntax aus, die von anderen Interpretern nur als Kommentar erkannt wird. Microsoft nennt das Verhalten „bedingte Kompilierung“ (Conditional Compilation).

<script type="text/javascript">
/*@cc_on @*/
/*@if (@_jscript_version >= 5.5)
    // dieser Bereich ist für jscript-Interpreter >= v5.5 sichtbar
@else @*/
    // dieser Bereich wird alternativ dazu ausgeführt
/*@end @*/
</script>

Diese Syntax ist in ähnlicher Form auch in den Sprachumfang von JScript .NET aufgenommen worden (@cc_on-Anweisung).

[Bearbeiten] Bedeutung für Outlook 2007

Die Darstellung von E-Mails im HTML-Format unter Outlook 2007 wird nicht mehr von einer Komponente des Internet Explorer, sondern von Microsoft Word übernommen[1]. Zusätzlich sind aus Sicherheitsgründen verschiedene HTML-Features (wie Formulare oder Scripte) unter Outlook 2007 nicht verfügbar[2][3]. Die Darstellung von HTML-E-Mail kann mit bedingten Kommentaren für Outlook angepasst werden, um z. B. bei Newslettern eine Alternative zu einem Eingabeformular anzubieten.

<!--[if gte mso 12]> Anweisungen für Office 2007 und größer <![endif]-->

[Bearbeiten] Weblinks

[Bearbeiten] Einzelnachweise

  1. MSDN: http://support.microsoft.com/kb/933793/. Outlook 2007 uses only Word as the e-mail editor, Stand 3. April 2007.
  2. MSDN: http://msdn.microsoft.com/de-de/library/aa338201.aspx Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (1/2), Stand August 2006.
  3. MSDN: http://msdn.microsoft.com/de-de/library/aa338200.aspx Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (2/2), Stand August 2006.
Persönliche Werkzeuge
Buch erstellen
Andere Sprachen