Aller au contenu

Commentaires conditionnels


Denis

Sujets conseillés

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 :

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Denis,

Si je comprends bien les explications de Microsoft :

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

<![if !IE 5]>
<p>Please upgrade to Internet Explorer version 5.</p>
<![endif]>

Un autre exemple

<![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]>

Lien vers le commentaire
Partager sur d’autres sites

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. :)

Lien vers le commentaire
Partager sur d’autres sites

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:

<!--[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 ;)

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

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres sites

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:

et j'avais passé l'exemple au validateur WDG... il n'a rien dit.

Lien vers le commentaire
Partager sur d’autres sites

j'avais passé l'exemple au validateur WDG... il n'a rien dit.

<{POST_SNAPBACK}>

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:

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...