Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5

    javascript ripetuto piu' volte

    Salve gente
    voglo subito avvisarmi della mia ignoranza in materia

    Sto cercando di scrivere una semplice pagina in html che svolga la funzione di promemoria.
    Per farlo utilizzo uno javascript che effettua un countdown e mi avvisa allo scadere del tempo

    Questo e' lo script in questione:

    codice:
    <body>
    <script language=javascript>
    <!--//
    
    var message = "Tempo Scaduto!";
    //do not edit below this line.//
    var parselimit=0;
    var st=0;
    var limit,curhour,curmin,cursec;
    function set_limit(strtstop) {
    //prevent multiple settimeouts
    if(st) { clearTimeout(st); }
    
    if(document.getElementById("pause").value == 1) {
    limit=document.getElementById("show_timer").innerHTML;
     } else {
    limit=document.getElementById("hours").value + ":" + document.getElementById("min").value + ":" + document.getElementById("sec").value;
     }
    parselimit=limit.split(":");
    // take the minutes x 60 add it to the seconds;
    parselimit=parselimit[0]*3600+parselimit[1]*60+parselimit[2]*1;
    //exit if timer wasn't set. //
    if(parselimit <= 0) { return; }
    
    if(strtstop == 1) {
    clearTimeout(st);
     } else {
    st = setTimeout("begintimer()",1000);
    
      }
     }
    
    function begintimer(){
    if (parselimit==1) {
    //ding ding ding
    document.getElementById("show_timer").innerHTML = message;
    alert(message);return;
    } else{ 
    parselimit-=1;
    curhour=Math.floor(parselimit/3600);
    //alert(parselimit)
    /* greater than an hour divide by
     60 but subtract the hours. */
    if(parselimit > 3600) {
    //first convert hours back into seconds
    curmin = curhour * 3600;
    //subtract that from total to get minutes left.
    curmin = parselimit - curmin;
    curmin = Math.floor(curmin/60);
    //alert(curmin);
     } else {
    curmin = Math.floor(parselimit/60);
     }
    cursec=parselimit%60;
    
     }
    
    curmin += "";
    
      if(curmin.length == 1 || curmin==9) {
      curmin = "0" + curmin;
      }
    cursec += "";
    //alert(cursec);
      if(cursec.length == 1 || cursec==9) {
      cursec = "0" + cursec;
       }
    curtime = curhour + ":" + curmin + ":" + cursec;
    
    //alert(document.getElementById("show_timer").innerHTML);
    
    document.getElementById("show_timer").innerHTML = curtime;
     
    st=setTimeout("begintimer()",1000);
    }
    
    
    function add_time_clock(x,frmelm) {
      
    var ter = document.getElementById(frmelm).value;
       /* add time */
      if(x==1) {
      ter = eval(ter) + 1;
        //if greater than 60 go to zero. i'm maxing out the hours at 60 too.
       if(ter >= 60) {
       ter='00';
        }
       } else {
       /* subtract time */
      ter = eval(ter)-1;
        //if greater than 60 go to zero. i'm maxing out the hours at 60 too.
       if(ter <= 0) {
       ter = '00';
        }
      }
    ter = "" + ter;
    
    if(ter.length == 1) { 
    ter = "0" + ter;
     }
      document.getElementById(frmelm).value = ter;
       
     }
    
    function rset_tmr() {
    document.getElementById('show_timer').innerHTML = "00:00:00";
    document.getElementById('pause').value=0;
      }
    function show_hide(div) {
     if(document.getElementById(div).style.display=='none') {
      document.getElementById(div).style.display='';
      } else {
      document.getElementById(div).style.display='none';
        }
      }
    //-->
    </script> 
    
    <input type=hidden id=pause value=0>
    <TD colspan=3 align=center height=25><span id=show_timer>00:00:00</span>
    <input type=text id=hours size=2 maxlength=2 value="00">:</TD><TD>
    <input type=text id=min size=2 maxlength=2 value=00>:</TD><TD> 
    <input type=text id=sec value="00" maxlength=2 size=2></TD></TR>
    <input type=button value="Start" onclick="set_limit()">
    <input type=button value="Pause" onclick="set_limit('1'),document.getElementById('pause').value=1"> 
    <input type=button value="Reset" onclick="rset_tmr()"></TD></TR>
    
    </body>
    </html>

    finche' c'e' uno script solo, nella pagina, nn ci sono problemi, ma nel momento in cui provo a duplicarlo per avere 2 countdown iniziano i problemi!

    da cosa puo dipendere?? come posso riuscire a mettere questo script piu' di una volta nella stessa pagina??
    grazie in anticipo... attendo vostre risposte!!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131

    Re: javascript ripetuto piu' volte

    Originariamente inviato da ne088

    finche' c'e' uno script solo, nella pagina, nn ci sono problemi, ma nel momento in cui provo a duplicarlo per avere 2 countdown iniziano i problemi!

    da cosa puo dipendere??
    Non vedendo nulla di online presumo perché l'hai inserito materialmente doppio tutto lo script, raddoppiando pari pari varibili, nomi funzioni, etc...
    come posso riuscire a mettere questo script piu' di una volta nella stessa pagina??
    Se si tratta di solo due countdown devi cambiare i nomi delle funzioni e delle variabili globali:
    codice:
    var parselimit=0;
    var st=0;
    var limit,curhour,curmin,cursec;
    verifica bene che sia solo quelle le varibili globali sono quelle esterne alle funzioni, se l'operazione va ripetuta per tre/quattro/cinque/etc.. countdown ritengo sia meglio rivedere tutto sviluppando un qualcosa a doc.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    In effetti mi interessa metterlo piu' di due volte... una quindicina per essere precisi!!

    se volessi cambiare le variabili le devo cambiare in tutto il listato oppure solo all'inizio quando vengono dichiarate??

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Originariamente inviato da ne088
    In effetti mi interessa metterlo piu' di due volte... una quindicina per essere precisi!!

    se volessi cambiare le variabili le devo cambiare in tutto il listato oppure solo all'inizio quando vengono dichiarate??
    Le variabili da cambiare sono quelle globali, cioè quelle fuori dalle funzioni. Riproporre tutto quello script 15 volte mi sembra una str....ta, ma ogni uno sviluppa come vuole
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    Non esiste un metodo per isolare gli script in modo che nn interagiscano tra di loro avendo le stesse variabili e funzioni???

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    smanettando un po' a tentativi sono arrivato alla conclusione che il problema potrebbe dipendere nn dallo script ma dai tasti html...

    codice:
    <html> 
    <head> 
    script riportato nel primo post
    </head>
    <body>
    
    <input type=hidden id=pause value=0>
    <TD colspan=3 height=25><span id=show_timer>00:00:00</span>
    <input type=text id=hours size=2 maxlength=2 value="00">:</TD><TD>
    <input type=text id=min size=2 maxlength=2 value=00>:</TD><TD> 
    <input type=text id=sec value="00" maxlength=2 size=2></TD></TR>
    <input type=button value="Start" onclick="set_limit()">
    <input type=button value="Pause" onclick="set_limit('1'),document.getElementById('pause').value=1"> 
    <input type=button value="Reset" onclick="rset_tmr()"></TD></TR>
    
    
    
    
    <input type=hidden id=pause value=0>
    <TD colspan=3 height=25><span id=show_timer>00:00:00</span>
    <input type=text id=hours size=2 maxlength=2 value="00">:</TD><TD>
    <input type=text id=min size=2 maxlength=2 value=00>:</TD><TD> 
    <input type=text id=sec value="00" maxlength=2 size=2></TD></TR>
    <input type=button value="Start" onclick="set_limit()">
    <input type=button value="Pause" onclick="set_limit('1'),document.getElementById('pause').value=1"> 
    <input type=button value="Reset" onclick="rset_tmr()"></TD></TR>

    infatti inserendo lo script dentro <head></head> e la parte grafica in html dentro <body></body>
    ogni volta che ripeto questa parte:

    codice:
    <input type=hidden id=pause value=0> 
    <TD colspan=3 height=25><span id=show_timer>00:00:00</span> 
    <input type=text id=hours size=2 maxlength=2 value="00">:</TD><TD> 
    <input type=text id=min size=2 maxlength=2 value=00>:</TD><TD>  
    <input type=text id=sec value="00" maxlength=2 size=2></TD></TR> 
    <input type=button value="Start" onclick="set_limit()"> 
    <input type=button value="Pause" onclick="set_limit('1'),document.getElementById('pause').value=1">  <input type=button value="Reset" onclick="rset_tmr()"></TD></TR>
    i tasti fanno partire il cauntdown nella prima parte!

    nn so' se mi sono spiegato.. se volete posso postare qualche screen!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    ho risolto dividendo la pagina in framset

    magari e' un metodo un po' brutale ma funziona

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 © 2024 vBulletin Solutions, Inc. All rights reserved.