Probleme avec setTimeout

Résolu
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 22 juin 2005 à 14:30
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 23 juin 2005 à 07:31
Hello,



je n'utilise pas beaucoup javascript, et la je me heurte a un probleme de comprehension.

Je precise qu'a la base, j'essaye d'envoyer regulierement une requete XMLHTTP dans un div.

Cela fonctionne tres bien si je precise dans la fonction d'envoi, directement l'id du div :

var contenu = document.getElementById ('contenu');



Mais si j'essaye de passer en argument cet id, ca ne fonctionne plus. Exemple basique sans XMLHTTP :



<script type="text/javascript">

function remplace (loc) {

var contenu = document.getElementById(loc);

contenu.innerHTML += 'bla';

setTimeout ("remplace ('ajout')", 500);

}

</script>









<script type="text/javascript">

remplace ('ajout');

</script>



Sans setTimeOut, cela fonctionne tres bien par contre, evidemment, de passer l'id dans la fonction.



Donc ma question : pourquoi avec le setTimeout cela ne fonctionne t il pas ?



Merci :-)

4 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 juin 2005 à 19:22
pas eu le temps de regarder
le code, mais ci-dessous un
exemple qui fonctionne sans
souci ( Internet Explorer, Mozilla )

<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/JavaScript">
function Ajouter(zone)
{ var d=new Date();
document.getElementById(zone).innerHTML+=
d.getHours()+
":"+d.getMinutes()+
":"+d.getSeconds()+
","+d.getMilliseconds()+
"
";
// setTimeout( function() { Ajouter("ajout"); }, 500 );
// qui fonctionne aussi bien que l'appel plus "logique" ? ci-dessous
setTimeout( function() { Ajouter(zone); }, 500 ); }
</script>
</HEAD>

<script type="text/JavaScript">
Ajouter("ajout");
</script>
</HTML>

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 juin 2005 à 15:19
Bonjour,
pour passer dans paramètres dans ce cas :

setTimeout( function() { remplace("ajout"); }, 500 );

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 juin 2005 à 15:33
Hello,

merci :-)
Mais ca ne fonctionne pas, en tous cas pas de la maniere dont je l'ai fait :

<script type="text/javascript">
function remplace (loc) {
var contenu = document.getElementById(loc);
contenu.innerHTML += 'bla';
setTimeout (function() { remplace("ajout"); }, 500 );
}
</script>




<script type="text/javascript">
remplace ('ajout');
</script>

La j'ai la meme erreur.
Et la :

<script type="text/javascript">
function remplace (loc) {
var contenu = document.getElementById(loc);
contenu.innerHTML += 'bla';
}
</script>




<script type="text/javascript">
setTimeout (function() { remplace("ajout"); }, 500 );
</script>

Ca marche, mais une seule fois, forcement. :-(
Et je ne veux pas utiliser onload.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 juin 2005 à 07:31
Ok,

merci Bul :-)
Je teste ca ! Et j'adapte.
0
Rejoignez-nous