Tropenhelmut: countdown

Hallo,

auch wenn es dutzende fertige Schnipsel hierf+r im Netz gibt, ich möchte mein eigenes haben. Aber es hakt noch und die Fehlöerkonsole bleibt leider still. Jetzt brauch ich das Forum.

  
<script type=\"text/javascript\">  
function countdown(uebergabesek)  
{  
var sek = uebergabesek;  
document.zeitablauf.innerHTML = 'Dieses Div soll in ' + sek + 'Sekunden ausgeblendet werden.';  
sek--;  
while ( sek > 0) {  
window.setTimeout(\"countdown(sek)\",1000);  
}  
}  
</script>  
  
  
<script type=\"text/javascript\">  
countdown('10');  
</script>  
  
  
<div id='zeitablauf'>  
Test  
</div>  

  1. Hallo Tropenhelmut,

    setTimeout startet eine Funktion zeitverzögert, wartet aber nicht. In Javascript gibt es kein "wait" oder "sleep" oder "delay" oder ... .

    Gruß, Jürgen

    1. Hallo Tropenhelmut,

      setTimeout startet eine Funktion zeitverzögert, wartet aber nicht. In Javascript gibt es kein "wait" oder "sleep" oder "delay" oder ... .

      Ja und?
      Warum funkt es nicht?

      1. Hallo Tropenhelmut,

        Ja und?
        Warum funkt es nicht?

        wei es keine Antenne hat und weil die while-Schleife den setTimeout so schnell wie möglich immer wieder aufruft. setTimeout ist KEIN wait. setTimeout ruft eine Funktion zeitverzögert auf, wartet aber nicht, bis die Funktion fertig ist.

        Gruß, Jürgen

        1. wei es keine Antenne hat und weil die while-Schleife den setTimeout so schnell wie möglich immer wieder aufruft. setTimeout ist KEIN wait. setTimeout ruft eine Funktion zeitverzögert auf, wartet aber nicht, bis die Funktion fertig ist.

          Gruß, Jürgen

          Und wie löse ich das Problem nun?

          Ich dachte, setTimeout wartet auf die Funktion.

          Th

          1. Hallo Tropenhelmut,

            Und wie löse ich das Problem nun?

            ertsetz das "while" durch ein "if"; und achte darauf, dass die Funktion erst aufgerufen wird, wenn das div mit der id 'zeitablauf' existiert. Und beschäftige dich mit document.getElementById, der Zugriff über document.zeitablauf ist IE-Syntax und wird nicht von allen Browsern unterstützt.

            Gruß, Jürgen

            1. ertsetz das "while" durch ein "if"; und achte darauf, dass die Funktion erst aufgerufen wird, wenn das div mit der id 'zeitablauf' existiert. Und beschäftige dich mit document.getElementById, der Zugriff über document.zeitablauf ist IE-Syntax und wird nicht von allen Browsern unterstützt.

              Danke Jürgen.
              Jetzt läufts einwandfrei.
              Gruß, Th