Newsgroup: it.comp.lang.javascript
Titolo: Timer in javascript

Ho scaricato un timer in javascript che parte non appena ci si carica
la pagina. Dato che l'originale faceva apparire i numeri in una
casella di testo ho apportato una modifica ed ora i numeri appaiono
come semplici caratteri. c'è un problema però: quando carico la pagina
mi appare il messaggio "document.all.d2 nullo o non è un oggetto".
Nonostante questo il timer funziona. Come faccio ad eliminare
l'errore?
Un'altra cosa: è possibile modificare i numeri scegliendo il
carattere, la dimensione e, eventualmente anche il colore?
Spero mi possiate aiutare. Grazie
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<title>Nuova pagina 1</title>
<script type="text/javascript">
<!--
var milisec=875
var seconds=354
var minutes=735
document.all.d2.value='0'
function display(){
if (milisec>=999){
milisec=000
seconds+=1
}
else
milisec+=1
if (seconds>=999){
seconds=000
minutess+=1
}
else
seconds+=1
document.all.d2.innerHTML=minutes+"."+seconds+"."+milisec
setTimeout("display()",100)
}
display()
//-->
</script>
</head>
<body onLoad="display();"> 
<div id="d2"></div>
</body>
</html>



Prova cosě:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nuova pagina 1</title>
</head>
<body onLoad="display();">
<div id="d2" style="color: red; font-family:Geneva; font-weight:bold; 
font-size:5em;"></div>
<script type="text/javascript">
<!--
var milisec=875
var seconds=354
var minutes=735
var div_crono=document.getElementById("d2");
function display(){
if (milisec>=999){
milisec=000
seconds+=1
}
else
milisec+=1
if (seconds>=999){
seconds=000
minutess+=1
}
else
seconds+=1
div_crono.innerHTML=minutes+"."+seconds+"."+milisec
setTimeout("display()",100)
}
display()
//-->
</script>
</body>
</html>
per lo stile del timer cambia a tuo piacimento l'attributo style in <div 
id="d2" style="color: red; font-family:Geneva; font-weight:bold; 
font-size:5em;"></div>
poi guardati un po' di js e css se vuoi personalizzare maggiormente.
ciao, Walter

 TP/BP/Delphi/jscr/&c, FAQ items, links.


Ora va benissimo. Finalmente: proprio come lo volevo io. Grazie


ciao, Walter
Accidenti, purtroppo ho notato che c'è un altro problema che non
riesco a capire. Quando i millesimi di secondo arrivano a 999 invece
di dare tre zeri 000 come ho impostato, ne danno uno. E' possibile
fare in modo che al momento di azzerarsi di tre zeri al posto di uno?
Ho provato a modificare
if (milisec>=999){
milisec=000
seconds+=1
facendo milisec='000'
ma sono usciti tre zeri fissi e poi una serie di "111111111".
C'è un altro modo?

 di dare tre zeri 000 come ho impostato, ne danno uno. 
Beh, è perché é un numero (e quindi gli zero iniziali non hanno senso...)
Formattalo a X cifre, vedi Faq 42:
 
http://www.criosoftware.it/default42.aspx
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

 :
function LZ(x) { return (x>=10||x<0?"":"0") + x }       // due zeri
function LZZ(x) { return x<0||x>=100?""+x:"0"+LZ(x) }   // tre zeri
function Prfx(Q, L, c) { var s = Q+""                   // c..c, -> L
  if (c.length>0) while (s.length<L) { s = c+s } ;
  return s }
