Créez votre site avec honolulu...
Apprendre le html
Cours de javascript
Apprendre les CSS

Alterner un texte en Javascript  






Nous avons vu ce que pouvait être le résultat d'un array associé à une boucle for (i=x;i<x;i++) et avons appliqué cette méthode à des images. Nous aurions tout aussi bien pu l'appliquer à du texte !

Regardez bien l'espace au-dessus et cliquez sur le bouton !

Dans l'exemple précedent la fonction aff() modifiait (en boucle) la valeur de l'objet document.getElementById("images").src= avec la variable lieu[i]. Cette référence pour Javascript adressait directement <img src="...gif" id=images>.

Ici aussi dans l'exemple du texte alterné, Javascript adresse cet objet par la référence document.getElementById('nom_du_div').innerText=...

Voici le script :

<script>
for(i=0;i<3;i++)
{
var mot=new Array("salut","bonjour","au revoir","à bientôt")
}
function ecrit(){
var NS4 = (document.layers)?1:0;
var IE4 = (document.all)?1:0;
var W3C = (document.getElementById)?1:0;
if (W3C){var baba = document.getElementById('blabla');}
else if (NS4){var baba = document.layers['blabla'];}
else {var baba = document.all['blabla'];}
if (i>2){i=0}
else {i++}
if (W3C){baba.innerHTML=mot[i];}
if (IE4){baba.innerHTML=mot[i];}
if (NS4)
{baba.document.open();
baba.document.write(mot[i]);
baba.document.close();}
setTimeout('ecrit()',1000)
}
</script>

et pour l'objet 'blabla' :

<div id=blabla style="width:120;height:20;border
-color:#d9d9f3;background:#d9d9f3;font-family:verdana;font
-size:20px;color:#8f8fbd"></div>

  • C'est donc à un <div> </div> que se réfère la fonction ecrit() par document.getElementById('blabla').innerText=...
  • Important : dans un souci de compatibilité avec Netscape, on retiendra "innerHTML" au lieu de "innerText"...
  • Là-aussi mon code me paraît compact et efficace, mais vous pouvez le perfectionner !

Sur la fonction embarquée setTimeout('nom_fonction()',1000), sachez qu'elle sert à relancer la fonction qu'elle contient toutes les x secondes (1000 pour renouveler la fonction toutes les secondes, 5000 toutes les 5 secondes, etc.).

Par la suite, nous verrons l'utilité de cette fonction dans l'utilisation des compteurs ou des comptes à rebours, par exemple.