Fonction de rafraichissement avec settimeout

missceline33 Messages postés 42 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 8 février 2007 - 7 févr. 2007 à 14:52
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 8 févr. 2007 à 12:14
Bonjour,

j'essaie de mettre une fonction qui va raffraichir ma page principale.

Pour cela, j'ai décidé d'utiliser la fonction settimeout, mais je suis face à un pb et je ne comprends pas.

Dans ma page principale, j'ai mis.

obj.setTime(10000);


Et dans ma classe obj, dans ma fonction init(), je fais appel à une fonction timed() dont voici le corps

function timed(){

        alert('test');    

        setTimeout("timed",10000);   

    }


Et cela ne fonctionne pas, la première fois j'ai le message "test" qui
s'affiche mais ensuite plus rien, j'ai une erreur javascript

apparemment "object attendu".


Quelqu'un aurait-il une piste?

Merci d'avance.


MissCeline33

9 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
7 févr. 2007 à 15:06
Bonjour,

    setTimeout("timed();",10000);   // (), sinon ce n'est pas une fonction

    mais s'il ne s'agit que de rafraîchir régulièrement,
    pourquoi pas : la balise <meta   http-equiv= "Refresh"
                                                    content=" délai en secondes ; URL =adresse de la page htm">
       comme ça, même si le javascript est désactivé, ça biagne



<hr />



Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
7 févr. 2007 à 15:08
au fait...
Dans ma page principale, j'ai mis. obj.setTime(10000);


pas compris ça ...





<hr />Cordialement                Bul             [mon Site]     [M'écrire]     
<hr />
0
missceline33 Messages postés 42 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 8 février 2007
7 févr. 2007 à 15:13
Désolée c'est une faute de recopie j'ai bien

setTimeout("timed()",10000);  

Et cela ne fonctionne pas quand même!


Sinon, pour ton autre solution je la mets où la balise META?


obj.setTime(10000) est ecrit dans mon fichier index.html,

Il appelle la fonction setTime de l'objet obj (c'est une classe
javascript) qui me permet d'affecter une variable de la classe obj .

Cette variable contient donc le delai à appliquer entre les timeout.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
7 févr. 2007 à 15:23
<script type="text/javascript">
function timed(){
        var d=new Date()
      document.body.innerHTML+=d+"
";
      setTimeout("timed();",1000);  
    }
timed();
</script>


>>obj.setTime(10000) est ecrit dans mon fichier index.html,
>>Il
appelle la fonction setTime de l'objet obj (c'est une classe
javascript)
>>qui me permet d'affecter une variable de la classe obj .
c'est bien... et quoi que c'est la fonction setTime ???

>>je la mets où la balise META?
comme toute balise html : n'importe où.
perso, je la met entre <head> et </head>... mais peu importe
la page chargée ( interprétée ? ), on chargera la page citée après le délai donné



<hr />



Cordialement            Bul         [mon Site]     [M'écrire]        




<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
missceline33 Messages postés 42 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 8 février 2007
7 févr. 2007 à 16:11
OK merci,

là je n'ai aps le temps de tester, mais je teste ce soir ou demain, et je te tiens au courant.

Merci beaucoup.


MissCeline33
0
missceline33 Messages postés 42 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 8 février 2007
8 févr. 2007 à 11:08
Ma fonction setTime(), et juste une fonction de classe qui affecte la variable de classe delay, nécessaire au setTimeout.

Mon problème vient du fait que ma fonction timed() est une fonction de classe, donc dans l'appel j'ai essayé avec

setTimeout("this.timed()",1000) mais ca ne marche pas.........
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 févr. 2007 à 11:53
si on n'en vois pas plus :
car dans une classe ou pas, ça baigne.
<hr />


Cordialement                Bul             [mon Site]         [M'écrire]  




<hr />
0
missceline33 Messages postés 42 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 8 février 2007
8 févr. 2007 à 12:04
Je te remercie bultez .

C'est bon, j'ai trouvé, en faisant avec le setTimeout(),, il fallait que je rajoute ID.timed() et non timed() tout court.

Je sais pas si c'est normal, mais en tous les cas ca fonctionne donc c'est cool!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 févr. 2007 à 12:14
si ça biagne, c'est nickel...
nous, on ne pouvait pas résoudre... sans les données...
<hr />


Cordialement                Bul             [mon Site]         [M'écrire]  




<hr />
0
Rejoignez-nous