Version complète: sur le forum Webmaster Hub : Commentaires conditionnels
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > (X)HTML et CSS
Denis
Bonjour à tous,

Dans un projet de refonte pour un client (MontrealCam.org, pour ne pas le nommer), nous devons passer un commentaire conditionnel pour afficher un message aux utilisateurs de MSIE 5 et 5.5 afin de les traiter comme nous traitons NS4 (c'est-à-dire avec un message d'invitation à une mise à jour des navigateurs) :

http://montrealcam.org/fr-miseengarde.html

Je me disais que ce serait une affaire de rien de passer un commentaire conditionnel pour faire afficher ce message au besoin, mais curieusement, MSIE 5.5 (car je ne vise que celui-là dans le test actuel) n'affiche pas le contenu comme il le devrait. J'utilise pourtant une syntaxe qui m'apparaît correcte, à savoir :

CODE
<!--[if IE 5.5]><div style="border: 1px solid #000; padding: 10px;"><p>The MontrealCam's website looks funny in your browser? <a href="en-miseengarde.html">Click here to understand why</a>.</p></div><![endif]-->


Mais que dalle dans le navigateur de Redmond... Z'avez une idée pourquoi ?

Pour info et voir une page type en action, j'ai intégré le bout de code dans cette unique page pour le moment :

http://montrealcam.org/en-biodome.html
Monique
Bonjour Denis,

Si je comprends bien les explications de Microsoft :
CITATION
Comment Type Syntax or Possible Value
standard HTML comment    <!-- Comment content  -->
downlevel-hidden              <!--[if expression]> HTML <![endif]-->
downlevel-revealed            <![if expression]> HTML <![endif]>

la bonne syntaxe ne serait-elle pas
HTML
<![if !IE 5]>
<p>Please upgrade to Internet Explorer version 5.</p>
<![endif]>


Un autre exemple
HTML
<![if lt IE 5]>
<i>Hay man, get with the program, and get IE 5+! You're missing some great stuff because of your current brain dead browser!</i>
<![endif]>
Denis
Oh je vois ou j'ai fais mon erreur... merci. Apparemment, mes commentaires conditionnels sont mal commentés... c'était si évident que je ne le voyais pas.. je vais tester tout ça et revenir faire un petit retour d'expérience. smile.gif
LaurentDenis
Ce n'est pas tout à fait ça.

Pour n'afficher le contenu que dans IE5.0 et EI5.5, il faut utiliser la syntaxe disant "IE et version strictement inférieure à 6", c'est à dire:

CODE
<!--[if lt IE 6]>...<![endif]-->


Attention Denis: si tu as plusieurs IE installés simultéement, ils se comportent vis à vis des commentaires conditionnels comme s'ils étaient tous IE6...

Monique: la syntaxe que tu cite est celle du "downlevel-revealed" qui sert au contraire à cacher le contenu du commentaire à IE... et qui est surtout invalide en HTML wink.gif

Bon, tant que j'y suis, les commentaires conditionnels à utiliser sont typiquement selon la cible:

<!--[if gte IE 5]> pour afficher le contenu dans IE 5.0 55.5 et 6.0
<!--[if IE 5]> pour IE 5.0
<!--[if IE 5.5000]> pour IE 5.5
<!--[if IE 6]> pour IE 6.0
<!--[if gte IE 5.5000]> pour IE 5.5 et 6.0
<!--[if lt IE 6]> pour IE 5.0 et 5.5
Monique
Ok Laurent, c'est vrai que j'ai beaucoup hésité sur la manière de comprendre
downlevel-revealed <![if expression]> HTML <![endif]>

J'avoue que j'étais un peu perdue là blush.gif
et j'avais passé l'exemple au validateur WDG... il n'a rien dit.
Denis
Merci à vous deux pour les explications et l'effort ! smile.gif

Je teste tout ça aujourd'hui.
LaurentDenis
CITATION(Monique @ 26 Oct 2004, 11:08)
j'avais passé l'exemple au validateur WDG... il n'a rien dit.
*


CITATION(http://validator.w3.org/)
Line 15, column 3: "IF" is not a reserved name

<![if !IE 5]>
...

Line 15, column 6: character data is not allowed here

<![if !IE 5]>
...

Line 17, column 3: "ENDIF" is not a reserved name

<![endif]>
...

Line 17, column 8: character data is not allowed here

<![endif]>


Il y a des fois où je me dis que j'ai raison de préférer le validateur du W3C whistling.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.