Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Timer problema

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323

    Timer problema

    Ciao a tutti, vado subito al nocciolo.
    Ho un Timer in javascript che in base ad una data che gli passo mi effettua un countdown della data....Il problema è che se io aggiorno la pagina se il countdown stava a 10s ritorna al suo stato originale es 30s....
    Come posso risolvere ?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Per fare la diagnosi di un codice sconosciuto dovrai aspettare la creazione di un forum Indovini, a noi occorre vedere il sorgente
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    function timer(data, lnk)
    {
    dat=document.getElementById(data);
    var time=(dat.innerHTML).split(":"); var done=0;

    if (time[2]>0) time[2]--;
    else
    {
    time[2]=59;

    if (time[1]>0) time[1]--;
    else
    {
    time[1]=59;

    if (time[0]>0) time[0]--;
    else { clearTimeout(id[data]); window.location.href=lnk; done=1;}
    }
    if(time[1]<10) {time[1]='0'+time[1];}

    }

    if(time[2]<10) {time[2]='0'+time[2];}
    if (!done)
    {
    dat.innerHTML=time[0]+":"+time[1]+":"+time[2];
    id[data]=setTimeout("timer('"+data+"', '"+lnk+"')", 1000);
    }
    }

  4. #4
    guarda è inutile stare a controllare quella funzione finchè non si chiarice questo: cosa è
    dat.innerHTML
    cioè che contenuti ha questo "dat"?
    Il tuo script sembra presumere che il suo innerHTML abbia sicuramente il formato atteso - e questo non è così scontato per chi legge qui.

    ma poi, soprattutto, anche ammesso il formato sia quello atteso, tu fai uno split di un valore che, poichè splittabile, è sicuramente stringa. Poi suoi suoi elementi splittati fai dei confronti con operatori NUMERICI.

    Quando hai un dato stringa, se vuoi confrontarlo con un numero devi farne il parseInt
    time[0]=parseInt(time[0])
    time[1]=parseInt(time[1])
    time[2]=parseInt(time[2])

    ps che, peraltro, potrebbero pure dare NaN come valore, se il formato dell' innerHTML non è, appunto, quello previsto

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    questo script non l'ho fatto io in quanto non conosco ancora javascript, so solo che gli vengono passati 2 dati : un tag HTML dove vi è il tempo da sottrarre e poi una pagina.php

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.