Voorwaardelijk commentaar in IE

Dit verhaal is door de tijd ingehaald. Met het verdwijnen van Internet Explorer is voorwaardelijk commentaar niet meer nodig. Het wordt op deze site niet meer onderhouden.
Vervallen: 6 mei 2020

Internet Explorer, de bekende browser van Microsoft, en zijn opvolger Ms-Edge, houden zich goed aan de webstandaarden. Dat wil zeggen: vanaf IE versie 10. Dat is in het verleden wel anders geweest. Het Document Object Model (DOM) van Internet Explorer week nogal af van wat de gezamenlijke concurrentie gebruikte. Dat gaf irritatie bij web-programmeurs, die voor elke website een speciale IE-versie moesten schrijven. Met name Internet Explorer 6 was voor web-programmeurs een soort ellende.
Uit die tijd dateren ook de zg. browser-sniffers, JavaScript-programma's waarmee kon worden bepaald welke browser de bezoeker gebruikte. Browser-sniffing technieken worden tegenwoordig beschouwd als achterhaald.

Vanaf Internet Explorer 7 ging het langzaam beter, maar toch was het nog verre van volmaakt. Microsoft kwam al in versie 5.5 met een eigen methode om onderscheid te maken tussen IE en "iets anders": Conditional Comments (CC) (Voorwaardelijk Commentaar). Hiermee kun je ook bepalen om welke versie van IE het gaat.

Conditional Comments
Zoals de naam al zegt gaat het om Commentaar-tags waarin "iets" zit waarmee je het gedrag van IE kunt beïinvloeden. Het commentaar [IF] bevat een voorwaarde voor de IE-versie. Als daar aan is voldaan wordt de ingesloten HTML uitgevoerd, totdat het commentaarblok wordt afgesloten met [ENDIF].

Voor de goede orde: Het gaat hier om commentaar. Dat wordt door elke browser geïnterpreteerd, maar de meeste browsers doen er verder niets mee (het is immers commentaar). Als Internet Explorer echter commentaar vindt dat is opgemaakt als voorwaardelijk commentaar, dan reageert het er op.

De syntax is als volgt:

<!--[IF GE IE 9]>
    Hier staat HTML die door IE moet worden verwerkt als de IE-versie 9 is of hoger.
<![ENDIF]-->

Let op de manier waarop de conditie is opgebouwd:

Het voorwaardelijke commentaar sluit je af met: <![ENDIF]-->
Let op het uitroepteken!

Vergelijkingsoperatoren

Operator BetekenisVoorbeeld
! Ontkenning [IF ! IE 6]
Alle versies van IE, behalve versie 6.
LT Kleiner dan [IF LT IE 7]
Versies van IE vóór versie 7.
LTE Kleiner dan
of
gelijk aan
[IF LTE IE 8]
Versies van IE vóór versie 8, en versie 8 zelf.
GT Groter dan [IF GT IE 8]
Versies van IE ná versie 8.
GTE Groter dan
of
gelijk aan
[IF GTE IE 8]
Versie 8 van IE en alle versies die daarna (nog) komen.

Het is ook mogelijk om de andere browsers dan Internet Explorer iets te laten doen. Dat gaat met een trucje. De code is:
 
<!--[IF !IE]><!-->
   HTML-code voor "andere" browsers
<!--<![ENDIF]-->

Dit ziet er nogal cryptisch uit. Bedenk dat de "andere" browsers de voorwaardelijke commentaren alleen zien als commentaar. Internet Explorer herkent dit als voorwaardelijk commentaar en slaat de code tussen de [IF] en [ENDIF] over.

Opmerking: Dit werkt voor alle versies van IE tot en met versie 9. Vanaf versie 10 is IE voldoende compatibel met andere browsers, zodat speciale ingrepen niet meer nodig zijn. Voorwaardelijk commentaar wordt door IE 10, IE 11 en Edge t.m. EdgeHTML-versie 15 nog steeds goed verwerkt.

Gebruik:

 
terug

html-375