Ich nutze ein einfaches CountdownScript zum zählen von Sekunden.
Diese sieht wie folgt aus:
Ich benutze eine Erweiterung und würde in deinem Fall zu einem Objekt raten.
Die Erweiterung:
Function.prototype.Timer = function(interval, calls, onend) {
// undefinierte Werte vermeiden
calls = calls || 0;
interval = interval || 0;
if(interval < 0) return alert('Interval ist kleiner Null!');
var count = 0;
var self = this;
var start_time = new Date();
// Die callBackfunktion wird während der Timer läuft aufgerufen
// gibt diese false zurück, wir der Timer beendet
var callBackFunction = function() { return self(start_time, count) };
// Funktion die am Ende aufgerufen wird.
var endFunction = function() { if(onend) onend(start_time, count, calls) };
// Die Timerfunktion
var timerFunction = function() {
count++;
if( ((!calls || count < calls) && false != callBackFunction()) )
{
window.setTimeout( timerFunction , interval);
}else {
endFunction();
}
;
};
// Start!
return window.setTimeout( timerFunction , interval);
};
Und so könnte dein Beispiel aussehen:
<script type="text/javascript">
function leadzero(intNbr) {
return (intNbr<10) ? '0'+ intNbr : intNbr;
}
function cntdown(sec,target) {
var seconds = sec || 0;
var obj = document.getElementById(target).firstChild;
var cmd = cmd;
function countdown() {
if (seconds >= 0) {
var h = Math.floor(seconds / 3600);
var m = Math.floor((seconds % 3600) / 60);
var s = seconds % 60;
obj.data =
leadzero(h) + ':' +
leadzero(m) + ':' +
leadzero(s);
seconds--;
} else {
return false;
}
}
function fertig() {
alert('Fertig' + target);
}
countdown.Timer(100, 0, fertig);
}
window.onload = function() {
new cntdown(10, 'cnt1');
new cntdown(5, 'cnt2');
}
</script>
<table>
<tr><td><span id="cnt1">.</span></td></tr>
<tr><td><span id="cnt2">.</span></td></tr>
</table>
Struppi.