Overblog Tous les blogs Top blogs Photographie
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Paris, photo, humeurs, un peu de HTML/CSS pour faire sérieux. Feinte innocence et vraie naïveté (ou vice-versa). Encore un blog qui agite ses petits bras en couinant "Viens me lire !"

Publicité

[JS-Confiance] 'Lire la suite', quelques perfectionnements

(merci à Julie, Justemoa, Maître Po et Fañch dont les questions m'ont aidé à préciser certains passages – article revu en août 2008)


Article tout à fait sérieux en dépit de la date de publication !

Le précédent article avait abouti à cette solution, à transporter dans le HTML :

 <p>Début de l'article</p> <a href="#nom_unique" onclick=" document.getElementById('nom_unique').style.display= ''; this.style.display= 'none'; return false;">Lire la suite…</a> <div id="nom_unique" style="display:none"> <p>Le texte à cacher</p> </div> 

On peut aller plus loin à peu de frais, voyons donc ça.

Perfectionnement 1 : faire un  vrai  bouton

Un  vrai  bouton, c'est-à-dire avec une n'image de bouton.

Idée 1 : récupérer et trafiquer, ou bien fabriquer vous-même cette n'image, avec ou sans texte dessus. La stocker quelque part dans votre admin OB. Remplacer les mots "Lire la suite…" par <img src="url_de_l_image" />. C'est tellement bête…

Idée 2 : employer une image comme ci-dessus mais sans texte – par exemple un bouton allongé – pour en faire l'image de fond background-image du lien. La manœuvre traîne partout sur le Web (et même ici), je vous laisse chercher, na !

Perfectionnement 2 : pouvoir masquer à nouveau le texte

Pas bien compliqué : on ajoute un deuxième  interrupteur  dans le div escamotable, interrupteur qui fera revenir ce div en display:none.

Pour que le système soit tout à fait complet, le premier interrupteur s'escamotera lui-même quand on cliquera dessus, et le deuxième fera revenir le premier. Il faudra donc donner un identifiant à ce premier interrupteur, et vogue la galère !

Enfin, une classe supplémentaire (ce n'est pas obligatoire du tout, juste commode) pour chaque interrupteur permet d'en ajuster finement l'apparence :

CSS

 .lienjecache, .lienjemontre {font-style:italic} /* ici, vous mettez ce qui */ .lienjecache {margin-left: 5em; } /* vous semble bon */ 

HTML avec commentaires

 <p>Texte toujours affiché</p> <a id="nom_unique_afficher" href="#nom_unique" class="lienjemontre" onclick=" document.getElementById('nom_unique').style.display= ''; /* montre le div */ this.style.display = 'none'; /* Nouveau : cache le présent lien */ return false; /* empêche de bouger */ ">Lire la suite …</a> <div id="nom_unique" style="display:none"> <p>Texte à cacher</p> <a class="lienjecache" href="#nom_unique_afficher" onclick=" document.getElementById('nom_unique').style.display= 'none'; /* cache le div */ document.getElementById('nom_unique_afficher').style.display = ''; /* montre le 1er lien */ return true; /* Cette fois on suivra le href pour revenir au 1er lien, après clic*/ ">… masquer la fin</a> </div> 

HTML sans commentaires

 <p>Texte toujours affiché</p> <a id="nom_unique_afficher" href="#nom_unique" class="lienjemontre" onclick=" document.getElementById('nom_unique').style.display= ''; this.style.display = 'none'; return false; ">Lire la suite …</a> <div id="nom_unique" style="display:none"> <p>Texte à cacher</p> <a class="lienjecache" href="#nom_unique_afficher" onclick=" document.getElementById('nom_unique').style.display= 'none'; document.getElementById('nom_unique_afficher').style.display = ''; return true; ">… masquer la fin</a> </div> 

Stockez ce bout de HTML dans un petit fichier à copier/coller dans vos articles, ça marche (presque) tout seul mais n'oubliez pas de remplacer le mot nom_unique (7 exemplaires) par un identificateur unique dans le blog !

Selon vos besoins, vous pouvez modifier le href du deuxième lien pour faire revenir le lecteur à un endroit quelconque de la page, par exemple un peu avant le lien "Lire la suite". Bien sûr, cet autre endroit devra porter un id , quelque chose comme nom_unique_retour nom_unique  est à remplacer par ce que vous avez choisi (technique utilisée dans le présent article).

  • Observations JavaScript :
  • le mot-clé this désigne l'élément HTML auquel est attaché le code JavaScript. Très pratique pour éviter de multiplier les identifiants, les getElementById et pour alléger l'écriture.
  • par défaut, le lien est suivi et l'instruction return true; pourrait donc disparaître. Cependant, j'aime mieux la laisser que de risquer de croire à un oubli : c'est plus explicite.
Perfectionnement 3 : masquer autre chose qu'un div

Ben… il suffit que cette  autre chose  porte un identifiant…

Perfectionnement 4 : séparer le lien de ré-escamotage de l'élément escamotable

Déjà, le lien de  révélation  n'a aucun besoin de précéder immédiatement l'élément escamotable, ni même de le précéder : si ça vous amuse, vous pouvez faire apparaître quelque chose dans l'en-tête du blog par un lien situé dans un module de texte libre. Pour que le découplage entre l'élément et sa commande soit complet, il faudrait aussi que le lien de  ré-escamotage  vienne s'afficher à la place du lien de révélation quand on affiche l'élément, et inversement quand on le masque.

Voici un tout petit exemple pour afficher un paragraphe supplémentaire.

Ce n'est qu'une extension du procédé, sans rien de neuf. Vous allez voir :

  1. le p porte l'id paragsurprise ,
  2. le lien de révélation porte l'id paragsurprise_afficher ,
  3. le lien de ré-escamotage porte l'id paragsurprise_masquer et un attribut style="display:none" ,
  4. le lien de ré-escamotage est écrit juste après le lien de révélation, ce qui lui permettra de s'afficher à sa place,
  5. et les gestionnaires onclick ont un peu grossi pour traiter le lien de ré-escamotage.

Concrètement voilà le code source de ce qui précède :

 <p id="paragsurprise" style="display:none">Avez-vous remarqué ce nouveau paragraphe ?</p> <p>Voici un tout petit exemple pour afficher un paragraphe supplémentaire. </p> <a id="paragsurprise_afficher" href="#paragsurprise" onclick=" document.getElementById('paragsurprise').style.display = ''; document.getElementById('paragsurprise_masquer').style.display = ''; this.style.display = 'none'; return false;">Chiche&nbsp;?</a> <a id="paragsurprise_masquer" href="#paragsurprise_afficher" style="display:none" onclick=" document.getElementById('paragsurprise').style.display = 'none'; document.getElementById('paragsurprise_afficher').style.display = ''; this.style.display = 'none'; return false;">Alors, convaincu&nbsp;?</a> 

Vous constatez qu'il ne faut aucune technique nouvelle, juste combiner astucieusement celles déjà connues.

Il faut tout de même savoir rester raisonnable. En particulier, il peut être hasardeux de vouloir faire apparaître puis disparaître des fragments de texte à l'intérieur d'un paragraphe  : bien que le JavaScript fasse son travail, le navigateur semble avoir du mal à reformatter correctement le texte.

Perfectionnement 5 : utiliser autre chose que des liens

Eh oui : TOUT, ou presque, peut recevoir un gestionnaire onclick.

Vous pouvez donc employer des images en guise d'  interrupteurs , pourquoi pas ? C'est ainsi que se ferme l'adhésif jaune repositionnable (marque déposée) de la page d'accueil de ce blog.

Plus vicieux : si vous utilisez un span, rien (mais alors rien de rien) ne signalera qu'on peut cliquer dessus. Utile pour dissimuler des  easter eggs  (petits cadeaux au lecteur), des indices d'énigmes…

Perfectionnement 6 : pourquoi seulement jouer à cache-cache ?

Plutôt que de cacher un élément, vous pouvez vouloir modifier son image de fond, sa bordure, ses dimensions… Il suffit de jouer sur autre chose que style.display. Pour l'image de fond, intervenez sur style.backgroundImage, pour bordure sur style.borderColor et/ou style.borderWidth et/ou style.borderStyle. Pour la marge du haut, ce sera style.marginTop, etc.

Remarquez au passage la transformation des noms des propriétés CSS lorsqu'ils sont composés : à border-color correspond style.borderColor

.

Notez aussi que JavaScript ne connaît pas les propriétés raccourcies. Gné ? En CSS, on peut écrire en une seule fois margin pour définir les quatre marges margin-top , margin-left , margin-bottom et margin-right. En JavaScript rien de tel, vous gérerez les quatre propriétés élémentaires. Même chose pour les fonds : pas de style.background, mais la déclinaison complète style.backgroundColor , style.backgroundImage , style.backgroundPosition , style.backgroundRepeat , style.backgroundAttachment et style.backgroundScroll. Le JavaScript, c'est un peu verbeux.

Perfectionnement 7 : pourquoi cliquer ?

C'est vrai, cliquer fatigue l'index et use la souris. On peut préférer quelque chose comme  je survole le bouton, ça change quelque chose, je ne survole plus le bouton, on revient à la normale. . Voici la recette :

  1. il n'y a pas de gestionnaire onclick sur le bouton.
  2. on le dote d'un gestionnaire onmouseover pour traiter ce qui se passe au survol. Ce gestionnaire reprend le onclick du bouton de révélation, sauf la gestion du bouton de ré-escamotage puisqu'il n'y en a pas.
    Ce gestionnaire se composera principalement d'instructions document.getElementById('id_de_la_cible).style.propriété='valeur';.
  3. on dote le bouton d'un deuxième gestionnaire onmouseout pour traiter le retour à la normale.
    Ce gestionnaire se composera principalement d'instructions document.getElementById('id_de_la_cible).style.propriété='';

Pour gérer l'aspect du bouton lui-même, il faut distinguer deux cas :

  1. si c'est un lien, le plus simple est de passer par le CSS, avec des règles du genre de #lebouton:hover {background-color:yellow}
  2. si c'est autre chose, et comme IE (au moins jusqu'à IE7) ne comprend toujours pas :hover sur autre chose que des liens, il faudra compléter les deux gestionnaires. Le gestionnaire onmouseover recevra des instructions this.style.propriété='valeur'; et le gestionnaire onmouseout, pour les mêmes propriétés, recevra des instructions this.style.propriété='';. Fastidieux mais inévitable.
Maintenant, c'est à vous de jouer

Des heures d'amusement en perspective…


Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
<br /> Bonjour !<br /> <br /> Un grand merci/un gros hug/une bonne crêpe (rayez les mentions inutiles) pour tout ceci ! Vos explications sont parfaites. En plus il est agréable de vous lire, ce qui ne gâche rien.<br /> <br /> Alors, ça marche, ça cartonne...<br /> <br /> MAIS<br /> <br /> ...j'aimerais pouvoir recacher mon contenu en cliquant au même endroit (sur la même image) que celui qui permet de le faire apparaître.<br /> <br /> Est-ce possible ?..<br /> <br /> Faut-il se lancer dans des else if ou des ptites choses comme ça ?<br /> <br /> J'ai le sentiment d'abuser en vous posant cette question alors que vous avez déjà construit tout le reste, donc je ne m'offusquerai pas et resterai aussi reconnaissante si je reste sans réponse !<br /> <br /> <br />
Répondre
A
<br /> 1-je prends tout, pas de mentions inutiles !<br /> 2-"agréable à lire" : merci, c'est ce à quoi je tiens le plus :-)<br /> 3-bien sûr qu'on peut faire ce que vous dites, et c'est nécessairement à base de if then else : "if c'est caché then je montre else je cache", en gros. Donnez-moi l'url de l'endroit concerné, je<br /> regarderai ça à l'occasion. Ca fournira sans doute la matière d'un paragraphe supplémentaire dans l'article :-)<br /> <br /> <br />
C
<br /> [HS, pardon : Booba, je n'avais pas bien pigé la question... - et non, "la minou" ce n'était pas une faute de frappe - c'est bien une chatte - et oui, elle est jolie, merci pour elle ! :-) ]<br /> <br /> <br />
Répondre
B
<br /> Bren vivi il s'agit bien du "menu felin"<br /> pour ce qui est des entrailles du script, je te crois sur parole, mais j'ai pas les compétences requises pour, y'a trop de trucs qui me sont étrangers la dedans...et un simple hover n'est pas<br /> envisageable),4 menus superposés qui s'ouvrent par un simple survol ,ce serait le bazar...bon vais quand même essayer de bidouiller verrais bien ...Merci quand même Maitre vénéré!!<br /> <br /> Christina,Merci,mais ce n'est pas ce que je recherche,le coup de l'interrupteur commandant 2 éléments, je l'ai déjà expérimenté dans ma toolbarre,c'est l'inverse que je cherche a faire 1<br /> interrupteur au click et 1 action au survol, les deux applicables sur 1 seul élément mais merci quand même..et le minou est très joli ^^<br /> <br /> <br />
Répondre
A
<br /> a l'occasion je le regarderai, parce qu'il m'intéresse, mais je ne sais pas quand...<br /> <br /> <br />
C
<br /> je ne sais pas si ça peut aider booba d'aller voir mes bidouilles (chuis sympa, je mets la page avec la minou) :<br /> http://christina.guwang.over-blog.fr/article-16800342.html<br /> faut cliquer dans le module à droite sur : "pour les liens cliquez là"<br /> et si on clique dans l'ordre sur les sous-menus, ça fait d'un clic deux coups : afficher la liste et masquer la précédente - et en prime des fermetures individuelles, les croix, pour que si on<br /> clique dans le désordre...<br /> (oui, cher maître des lieux, I'm complicate my life...)<br /> <br /> sinon en "page" dans le module les liens vers ailleurs sont en pur CSS (:hover)<br /> http://christina.guwang.over-blog.fr/pages/liens-337775.html<br /> avec le regret que c'est un peu speed (pas de p'tit temps de retard) et c'est bien si on arrive par le bas ou le côté, sinon c'est un peu déroutant...<br /> <br /> <br />
Répondre
B
<br /> Cet article est le dernier salon où l'on cause.... :-D<br /> <br /> <br />
B
<br /> vouais vouais vouais...alors vala ces deux questions se rejoignent je vais t'expliquer tout (et oui tu va persister dans l'idée que je me complique pour pas grands chose ;)<br /> <br /> J'utilise actuellement un menu défilant rétractable (que nous apelerons "conteneur") qui contient lui même d'autres menus (que nous appelerons thématiques) ,fonctionnant avec un select , (ici<br /> http://www.boobalechat.com/archive-10-2009.html)<br /> <br /> hors Google aime les vrais liens ( a href blabla ) et la syntaxe de la navigation actuelle est 0 au niveau référencement)<br /> <br /> tu remarqueras qu'il est possible de refermer au click les menus thématiques sans que le "conteneur" de ces menus ce referment, et que lorsqu'un menu thématique est ouvert et que l'on ne survol<br /> plus le "conteneur" ,l'ensemble se referme.Si l'on rouvre le "conteneur" en le survolant ,les menus thématiques sont au repos..Dac?<br /> <br /> <br /> <br /> j'ai fait un essai de menu contenant donc de "vraies" url sur la base de la syntaxe exposée dans mon premier commentaire (ici http://www.boobalechat.com/pages/Plan_du_site-1347663.html cf le<br /> premier menu thematique),<br /> il ouvre et ferme au click, pas de problème, mais si je laisse le menu thématique ouvert et laisse le conteneur se refermer; a la prochaine ouverture du "conteneur" le menu thématique sera encore<br /> ouvert (chose que je ne veux pas).<br /> <br /> Vu que je me sens absolument pas de plonger dans le script de rétractation du conteneur , j'avais eu cette idée de pouvoir utiliser un onmouseoute+ le click , afin d'avoir un fonctionnement<br /> similaire a celui que j'ai actuellement avec mes "select" (le onmouseout permettant de de ne plus avoir de menu thématique ouvert a la réouverture du conteneur sans avoir au préalable clické pour<br /> le refermer)<br /> <br /> euh chui pas sur d'être clair Grand Maitre ...?<br /> <br /> <br />
Répondre
A
<br /> J'ai cherché un peu pour comprendre... il est question du "menu félin", c'est ça ?<br /> A mon humble avis ses entrailles ont besoin d'une sérieuse remise en ordre...<br /> Pour obtenir l'effet que tu désires le plus sûr serait tout de même de plonger dans le JS de rétractation de ce menu, pour qu'il referme tous ses sous-menus en douce, une fois qu'il s'est replié<br /> lui-même.<br /> Ou alors que les sous-menus s'ouvrent et ferment sans JS du tout, uniquement en jouant sur :hover... non ?<br /> <br /> <br />
B
<br /> me revoila...gnark!<br /> <br /> Bon alors je pense avoir a peu près pigé les subtilités du truc mais ....<br /> 2 questions me viennent (c'est pour bidouiller un menu deroulant):<br /> <br /> 1) est il possible que le lien de fermeture viennent en lieu et place du lien d'ouverture (ai trouvé un truc du genre :<br /> je vire les chevrons et met des espaces volontairement en esperant que le code passe en commentaire:<br /> <br /> li onclick ="if (this. getElements By Tag Name ('ul') [0].style.display != '') { this. getElements By Tag Name ('ul') [0].style.display = '';} else { this.getElements By Tag<br /> Name('ul')[0].style.display = 'none'; }"<br /> <br /> le lien cliquable, s'en suit un"ul" en style display none et une serie de "li"<br /> <br /> <br /> mais sais pas si ca sera adaptable a la question 2)<br /> <br /> et donc la question2:<br /> avoir le bouton clickable de fermeture+ un onmouseout ,euh.. c'est possible?<br /> <br /> <br /> bah vi suis pénible mais en même temps c'est ta faute aussi a nous pondre des bidouilles qui donnent pleins d'idées... ;)<br /> <br /> <br />
Répondre
A
<br /> My dear matou,<br /> you are going to complicate your life for pas great-thing.<br /> Le JS pour tripoter le style d'un élément, ça va pour changer UNE propriété (display, par exemple) pour UN élément, deux à la rigueur. Au-delà (plusieurs éléments ou plusieurs propriétés), ça<br /> conduit à d'atroces complications comme celles que tu envisages.<br /> Il est plus simple alors de n'utiliser le JS que pour ajouter ou retrancher des classes à des éléments judicieusement choisis et de faire le reste du travail par le CSS.<br /> Eléments judicieusement choisis ? La zone que tu veux "animer" peut se trouver emballée dans un div (mettons, je prends la balise la plus passe-partout). Tes divers boutons, éventuellement placés<br /> dans ce div, ajoutent ou retranchent une classe à ce div: "ouvert", "ferme", "cache", "developpe", "reduit","tagada" ou "tsointsoin". Ensuite tu joues du CSS. Dans ce que tu cherches à faire, si le<br /> bouton d'ouverture (qui donne la classe "ouvert" au div) porte la classe "ouverture" et celui de fermeture (qui donne la classe "ferme") porte la classe "fermeture", tu peux les écrire l'un à côté<br /> de l'autre dans le HTML et, en CSS, écrire<br /> <br /> .ferme .fermeture {display;none}<br /> .ouvert .ouverture {display:none}<br /> <br /> en plus des règles qui contrôlent l'aspect du div selon sa classe.<br /> Un seul bouton à la fois sera visible et, visuellement, l'un prendra la place de l'autre.<br /> Pour la manière d'ajouter ou retrancher une classe, tu peux regarder mes papiers sur les modules "réactifs" ou "repliables", il y a dedans les regExp nécessaires (et puis je finirai bien par faire<br /> un petit papier là-dessus)<br /> <br /> Quant à combiner mouseout et click, je ne suis pas sûr de comprendre ce que tu veux faire... des détails, svp ?<br /> <br /> <br />
S
<br /> Formidable, merci.<br /> <br /> <br />
Répondre
A
<br /> Bref et limpide : j'aime ! :-D<br /> <br /> <br />
B
<br /> hihi...euh...nan te sauve pas en courant...<br /> <br /> juste une question (promis une seule!)<br /> <br /> est il possible grâce a cette magnifique bidouille<br /> <br /> de metre le "pilotage" dans un module texte libre....et le texte a afficher dans un autre...et que tout marche?<br /> <br /> simple curiosité....nan parce que j'ai une idée la (mon dieu!) d'interrupteur pilotant divers trucs dispersés dans le blog et ayant le même "nom_unique"..et vu que j'y arrive pas (pour changer) ,<br /> me demande si c'est faisable mon truc...<br /> <br /> juste oui ou non ...pour ce qui est de tout casser après je m'en charge :p<br /> <br /> Merci ;)<br /> <br /> <br />
Répondre
A
<br /> Juste une réponse (promis une seule !) : c'est possible.<br /> <br /> Rien n'oblige les divers liens de commande à se trouver dans, avant ou après les trucs à modifier. Cela, parce que les onclick sont, justement, des onclick, c-à-d qu'ils ne s'exécutent<br /> (normalement) qu'une fois que la page a eu le temps de se charger, donc que tous les identifiants sont arrivés, donc que les getElementById, qui explorent l'ensemble du document (pas pour rien que<br /> cette méthode est attachée au document), peuvent fonctionner en connaissance de cause.<br /> <br /> Pour ton idée-là-mon-Dieu (finalement ça fait deux réponses) : un même interrupteur peut parfaitement piloter plusieurs "trucs dispersés"...<br /> MAIS il faut que ces trucs dispersés aient des identifiants DIFFERENTS (quitte à ce qu'une partie de ces identifiants soit commune, histoire de s'y retrouver à la lecture : glace_vanille,<br /> glace_fraise, glace_citron...)<br /> ET il faut que le onclick fasse un getElementById pour CHACUN de ces identifiants différents.<br /> Valà.<br /> (pour ce qui est de tout casser ensuite je te fais pleinement confiance !)<br /> <br /> <br />
B
<br /> Que dire si ce n'est merci une fois de plus !<br /> <br /> j'ai juste eu a modifier le "artrec" en "framartrec" placé sur le bouton de fermeture afin que la boucle soit bouclé et ca fonctionne parfaitement!!!<br /> <br /> bon j'crois que ma barre d'outils est terminée et c'est grâce a toi: Merci :)<br /> <br /> Pour le code anti IE6 , j'ai suivi taz préconisation (du moins je pense:j'étais pas sur que le } se mette a la ligne) , mais je suis meme pas sur qu'il fonctionne, encore un truc qui est resté en<br /> plan sur ce blog... :) )<br /> <br /> <br />
Répondre
A
<br /> Attends seulement que je retrouve le numéro de mon compte en Suisse...<br /> <br /> <br />
B
<br /> Hihi...euh...euh...alors je suis désolé de poursuivre le hs (mais pas totalement) que j'ai si bien entamé il y'a quelques jours sur cet article rapport a ma barre d'outils maison....$<br /> <br /> euh si tu veux m'envoyer rebondir je t'en voudrais pas hein... ;)<br /> <br /> alors j'ai un soucis doc:<br /> <br /> si j'utilise le lien "recommander" de mon blog (que ce soit celui placé dans la colonne ou celui placé dans ma barre d'outils)..<br /> et que la je décide d'arrêter le processus de recommandation en cliquant- sur le bouton "fermer" du formulaire:<br /> ca me fait apparaitre mon iframe .y'a t'il un moyen de la verrouiller de maniere a ce que seul le lien "jemontre" associé a la dite iframe la fasse apparaitre...<br /> <br /> j'avoue que je sèche largement cher maitre vénéré<br /> <br /> <br />
Répondre
A
<br /> Ca, c'est un peu trapu - et bien sûr je ne connais pas les détails de ce que fait le JS OB.<br /> A tout hasard commence par donner à ton iframe les mêmes attributs name et id (actuellement paragsurprise et artrec), ça ne peut pas nuire.<br /> <br /> (+ tard) j'ai testé, ça ne suffit pas. Il faut revoir ton js : ce que tu masques/affiches n'est pas l'iframe artrec mais le div complet framartrec. Alors:<br /> 1-ajoute style="display;none" sur ce div<br /> 2-supprime les styles posés sur l'iframe et sur le bouton de fermeture<br /> 3-dans les deux onclick, remplace artrec par framartrec<br /> <br /> [a id="artrec_masquer"<br />     onclick="document.getElementById('framartrec').style.display = 'none'; document.getElementById('artrec_afficher').style.display = ''; return false;"<br />     href="#artrec_afficher"]<br /> <br /> [a  id="artrec_afficher" title="les dernières parutions" onclick="document.getElementById('framartrec').style.display = ''; document.getElementById('artrec_masquer').style.display = '';<br /> this.style.display = 'none'; return false;"  href="#artrec"]<br /> <br /> Tant que tu y es revois aussi ta fonction anti-IE6 :<br />     function verification() {<br />      if (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion == 6)<br />       alert ("site optimisé pour tous les navigateurs*.<br /> (*) IE6 n'est pas digne d'etre appelé navigateur: mettez à jour votre butineur ! ");<br />     }<br /> La chaîne de caractères doit être écrite sur une seule ligne - drès drès imbordant !<br /> <br /> <br /> <br /> <br />