Struppi: Script Handler

Beitrag lesen

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.