Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    894

    [javascript] richiamare una funzione ogni 10 secondi

    ho creato una funzione che visualizza un certo div, vorrei richiamare la stessa funzione ogni 10 secondi in modo da far visualizzare un altro div al posto di quello mostrato all'inizio e di nuovo dopo 10 secondi mostrare il primo div e nascondere il secondo.
    E così via..
    Quindi come posso richiamare una funzione javascript contenuta nel tag head ogni 10 secondi?

    TNX

  2. #2
    Utente di HTML.it L'avatar di Sammy73
    Registrato dal
    May 2001
    Messaggi
    412
    se non mi sbaglio...

    setTimeout(nomefunzione(),10000)
    Pesa più un litro d'acqua o uno d'olio...?
    La prima persona al mondo a finire Splinter Cell uccidendo solo una persona. Già che c'ero l'ho fatto anche in Splinter Cell 2: solo 5 UCCISIONI
    .*zerOKilled*.

  3. #3
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    894
    E' giusto questo codice?

    <script language="JavaScript" type="text/javascript">
    <!--
    funztion miafunzione(){
    // blah blah;
    }

    setTimeout(miafunzione(),10000);
    //-->
    </script>

  4. #4
    Utente di HTML.it L'avatar di Sammy73
    Registrato dal
    May 2001
    Messaggi
    412
    a occhio e croce si
    Pesa più un litro d'acqua o uno d'olio...?
    La prima persona al mondo a finire Splinter Cell uccidendo solo una persona. Già che c'ero l'ho fatto anche in Splinter Cell 2: solo 5 UCCISIONI
    .*zerOKilled*.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    A occhio e croce NO.

    In quel modo chiami la funzione una volta sola, mentre tu vuoi richiamrla ogni 10 sec. Quindi la funzione deve richiamare se stessa (tramite setTimeout):
    codice:
    <script language="JavaScript" type="text/javascript">
    <!--
    function miafunzione(){
      // blah blah;
      setTimeout('miafunzione()',10000); // richiamo ciclico
    }
    
    setTimeout('miafunzione()',10000); // richiamo la prima volta
    //-->
    </script>
    Nota che miafunzione() va racchiusa tra apici.

    Al posto dell'ultima riga, io preferisco inserire la chiamata all'onload del body:
    <body onload="setTimeout('miafunzione()',10000);">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    894
    NON FUNZIONA!! Allora vi mostro tutto il codice che uso:

    <!--
    var banner_id = 0;

    function scambia_banner(){
    if(banner_id == 0){
    banner_id = 1;
    document.all[banner_1].style.visibility = 'show';
    document.all[banner_2].style.visibility = 'hidden';
    document.all[banner_3].style.visibility = 'hidden';
    }
    else if(banner_id == 1){
    banner_id = 2;
    document.all[banner_1].style.visibility = 'hidden';
    document.all[banner_2].style.visibility = 'show';
    document.all[banner_3].style.visibility = 'hidden';
    }
    else if(banner_id == 2){
    banner_id = 0;
    document.all[banner_1].style.visibility = 'hidden';
    document.all[banner_2].style.visibility = 'hidden';
    document.all[banner_3].style.visibility = 'show';
    }

    setTimeout('scambia_banner()',10000);
    }

    // codice html nel body

    <div id ="banner_1">etrtr</div>
    <div id ="banner_2">etrtr</div>
    <div id ="banner_3">etrtr</div>

    al caricamento della pagina dovrei visualizzare solo il primo div, poi dopo 10 secondi il secondo e cosi cia...
    ma visualizzo tutti e 3 i div in una volta e poi non accade nulla.

  7. #7
    Utente di HTML.it L'avatar di Sammy73
    Registrato dal
    May 2001
    Messaggi
    412
    Originariamente inviato da Mich_
    A occhio e croce NO.

    Mich_
    Pesa più un litro d'acqua o uno d'olio...?
    La prima persona al mondo a finire Splinter Cell uccidendo solo una persona. Già che c'ero l'ho fatto anche in Splinter Cell 2: solo 5 UCCISIONI
    .*zerOKilled*.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    All'inizio li visualizza tutti e tre, perche` nel codice c'e` scritto di visualizzarli.
    Inoltre non vedo l'istruzione per far partire il tutto (da mettere nel tag body, come dicevo sopra).

    Comunque addirittura fai una routine che funzioni per tutti, non solo per quelli che hanno il tuo browser.
    codice:
    var banner_id = 0;
    function scambia_banner(){
      if(banner_id == 0){
        banner_id = 1;
        document.getElementById('banner_1').style.display = 'block';
        document.getElementById('banner_2').style.display = 'none';
        document.getElementById('banner_3').style.display = 'none';
      } else if(banner_id == 1){
        banner_id = 2;
        document.getElementById('banner_1').style.display = 'none';
        document.getElementById('banner_2').style.display = 'block';
        document.getElementById('banner_3').style.display = 'none';
      } else if(banner_id == 2){
        banner_id = 0;
        document.getElementById('banner_1').style.display = 'none';
        document.getElementById('banner_2').style.display = 'none';
        document.getElementById('banner_3').style.display = 'block';
      } 
      setTimeout('scambia_banner()',10000);
    } 
    
    </script>
    </head>
    <body onload="setTimeout('scambia_banner()',10000);">
    
    <div id ="banner_1" style="display:block;">etrtr</div>
    <div id ="banner_2" style="display:none;">etrtr</div>
    <div id ="banner_3" style="display:none;">etrtr</div>
    ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Naturalmente Mich_ dice bene (ciao Mich_)...

    Sammy73 il tuo non andava pekké
    codice:
    document.all[banner_1].style.visibility = 'show';
    banner_1 dentro le parentesi quadre deve essere una stringa quindi 'banner_1', senza apici (o virgolette) è una variabile (o in questo caso l'oggetto div)
    se usi visibility il valore è hidden o visible

    e poi vorrei aggiungere qualcosa
    in questo esempio si utilizza il setTimeout con una funzione ricorsiva... si può anche fare una funzione non ricorsiva e usare il setInterval che esegue la funzione ogni tot millisecondi

  10. #10
    Utente di HTML.it L'avatar di Sammy73
    Registrato dal
    May 2001
    Messaggi
    412
    Originariamente inviato da willybit

    Sammy73 il tuo non andava pekké
    codice:
    document.all[banner_1].style.visibility = 'show';
    forse intendevi dire GIF


    si può anche fare una funzione non ricorsiva e usare il setInterval che esegue la funzione ogni tot millisecondi
    io in verità volevo dirlo, ma poi mi sono confuso...

    il setInterval lo uso spesso in FLASH...

    ma siamo sicuri che c'è anche in javascript?

    Pesa più un litro d'acqua o uno d'olio...?
    La prima persona al mondo a finire Splinter Cell uccidendo solo una persona. Già che c'ero l'ho fatto anche in Splinter Cell 2: solo 5 UCCISIONI
    .*zerOKilled*.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.