Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème avec setTimeout

4 réponses
Avatar
ast
Bonjour

Pourquoi le programme suivant ne marche t'il pas ?

"foo" ne s'affiche qu'une seule fois au lieu de 5 fois avec une seconde entre 2 affichages.

merci


<HTML>
<BODY>
<SCRIPT LANGUAGE = javascript>

var i=0;

function Timer() {

document.write("foo" + "<BR>");
i++;
if (i < 5) {
setTimeout("Timer()",1000);
}

}

Timer();

</SCRIPT>
</BODY>

</HTML>

4 réponses

Avatar
Michaël Nourry
Le 25/04/2013 10:03, ast a écrit :


function Timer() {

document.write("foo" + "<BR>");
i++;
if (i < 5) {
setTimeout("Timer()",1000);
}
}

Timer();



Tu peux faire un window.setTimeout hors de Timer() et sinon tu peux
regarder du côté de setInterval.

--
Michaël Nourry
CRDP Versailles
Avatar
SAM
Le 25/04/13 10:03, ast a écrit :
Bonjour

Pourquoi le programme suivant ne marche t'il pas ?

"foo" ne s'affiche qu'une seule fois au lieu de 5 fois avec une seconde
entre 2 affichages.

merci


<HTML>
<BODY>
<SCRIPT LANGUAGE = javascript>

var i=0;

function Timer() {

document.write("foo" + "<BR>");
i++;
if (i < 5) {
setTimeout("Timer()",1000);



setTimeout(Timer,1000);

}
}

Timer();
</SCRIPT>
</BODY>
</HTML>





Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Avatar
ast
Merci SAM

C'est quand même étrange cette histoire de guillemets car
dans des cours, par exemple ici:
http://www.toutjavascript.com/reference/reference.php?ref=setTimeout&parent=6
les guillemets y sont.

D'autre part j'ai aussi programme qui utilise setInterval avec la fonction
appelée entre guillemets et qui marche ...

chrono=setInterval("heure()",10);
Avatar
SAM
Le 26/04/13 10:14, ast a écrit :

Merci SAM

C'est quand même étrange cette histoire de guillemets car
dans des cours, par exemple ici:
http://www.toutjavascript.com/reference/reference.php?ref=setTimeout&parent=6

les guillemets y sont.

D'autre part j'ai aussi programme qui utilise setInterval avec la fonction
appelée entre guillemets et qui marche ...

chrono=setInterval("heure()",10);



Attention!
Sans les guillemets, il ne faut que le *nom* de la fonction

soit, dans cet exemple :

chrono=setInterval(heure,10);

Maintenant, pour le truc qui ne fonctionnait pas, je n'ai pas non plus
réussi à le faire fonctionner.
Je présume que dès le 2ieme appel à Timer ça reécrit par dessus le
reste, effaçant en même temps le JavaScript et que donc alors 'Timer'
n'est plus connu :-(


Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8