Oto napisany przeze mnie zegarek z tysięcznymi sekundy i mrygającymi dwukropkami :-)
Zegar i data pojawiają się w pasku statusu po najechaniu na nie myszką.
plik "zegar.js":
var dataStr, czasStr, sekunda, dzien;
function zegar()
{
data = new Date();
if(sekunda!=data.getSeconds())
{
setna = 0;
sekunda = data.getSeconds();
minuta = data.getMinutes();
godzina = data.getHours();
if(minuta<10) minuta = "0" + minuta;
if(sekunda<10) sekunda = "0"+sekunda;
if(dzien!=data.getDate())
{
dzien = data.getDate();
miesiac = data.getMonth();
switch(miesiac)
{
case 0 : miesiac = "Stycznia";
break;
case 1 : miesiac = "Lutego";
break;
case 2 : miesiac = "Marca";
break;
case 3 : miesiac = "Kwietnia";
break;
case 4 : miesiac = "Maja";
break;
case 5 : miesiac = "Czerwca";
break;
case 6 : miesiac = "Lipica";
break;
case 7 : miesiac = "Sierpnia";
break;
case 8 : miesiac = "Wrzesnia";
break;
case 9 : miesiac = "Pazdziernika";
break;
case 10 : miesiac = "Listopada";
break;
case 11 : miesiac = "Grudnia";
}
rok = 1900 + data.getYear();
dataStr = dzien+" "+miesiac+" "+rok;
document.zegar.data.value = dataStr;
}
}
milli = data.getMilliseconds();;
znak = (milli<500)?":":" ";
milliStr = (milli<100)?((milli<10)?"00"+milli:"0"+milli):milli;
czasStr = godzina+znak+minuta+znak+sekunda+znak+milliStr;
document.zegar.czas.value = czasStr;
Timer = setTimeout("zegar()", 1);
}
var stop = 1;
function czytaj_zegar()
{
(stop==1)?setTimeout('window.status=defaultStatus',15):setTimeout('czytaj_zegar(1)',10);
window.status = "Aktualna godzina: "+document.zegar.czas.value;
}
defaultStatus = document.title;
natomiast na stronie musi być kod:
<html>
<head>
<script language='JavaScript' src='zegar.js' type='text/javascript'></script>
</head>
<body onLoad='zegar()'>
[...]
<table cellpadding='0' cellspacing='0' border='0'>
<tr>
<td align='right' onMouseOut="window.status=defaultStatus" onMouseOver="window.status='Dzisiejsza data: '+document.zegar.data.value;return true;">
Dzisiejsza data:<br/>
</td>
<td width='5' onMouseOut="window.status=defaultStatus" onMouseOver="window.status='Dzisiejsza data: '+document.zegar.data.value;return true;">
</td>
<td onMouseOut="window.status=defaultStatus" onMouseOver="window.status='Dzisiejsza data: '+document.zegar.data.value;return true;">
<form name='zegar'><input type='text' name='data' value=''/><br/>
</td>
</tr>
<tr>
<td align='right' onMouseOut="stop=1" onMouseOver="stop=0;czytaj_zegar();return true;">
Godzina:<br/>
</td>
<td onMouseOut="stop=1;" onMouseOver="stop=0;czytaj_zegar();return true;">
</td>
<td onMouseOut="stop=1;" onMouseOver="stop=0;czytaj_zegar();return true;">
<input type='text' name='czas' value=''/></form><br/>
</td>
</tr>
</table>
[...]
</body>
</html>
Funkcja czytaj_zegar() jest niedoskonała: czasami jak zjeżdżasz myszką z zegarka, nadal się <ort>odświerza</ort> w pasku statusu. Trzeba wtedy najechać jeszcze raz i <ort>z powrotem</ort> zjechać. Niewiem za bardzo, dlaczego tak się dzieje?
Może ktoś wie?