# JS Countdown X Sekunden bis 0



## Christoph Haas (15. Juli 2011)

Hallo,

nach langem suchen und und etlichem Kopfrauchen hab ich nun das Richtige Script für einen Countdown der von 10 Sekunden (oder mehr bzw. weniger Sekunden) runterzählt.

Eine Funktion nach den 10 Sekunden wird nicht ausgeführt und er startet nach dem Ladem der Seite.
Vielleicht kann mit diesem Script ja jemand was anfangen   


```
<script type="text/javascript"> 
function countDown(init)
{
if (init || --document.getElementById( "counter" ).firstChild.nodeValue > 0 )
	window.setTimeout( "countDown()" , 1000 );
};
 

</script>
<body onload="countDown(true)"><p>Noch <span id="counter">10</span> Sekunden!</p></body>
```


----------



## ComFreek (16. Juli 2011)

Statt window.setTimeout könnte man auch window.setInterval benutzen.
Folgende Funktion habe ich in einem (alten) Skript gefunden:

```
function countdown(initValue, callback, domElement)
{
  var curValue = initValue;
        
  var cInterval = null;
        
  function _countdown()
  {
    if (typeof callback=="function")
      callback(curValue);
            
    if (domElement!=null)
    {
      if (domElement.firstChild==null)
      {
        var textNode = document.createTextNode(curValue);
        domElement.appendChild(  textNode  );
      }
      else
      {
        domElement.firstChild.nodeValue = curValue;
      }
    }            
            
    if (curValue >= 1)
      curValue -= 1;
    else
      window.clearInterval(cInterval);
  }
  _countdown();
  cInterval = window.setInterval(_countdown, 1000);
}
```

Beispiel:

```
window.onload = function()
{
  countdown(3, function(curValue)
  {
    alert(curValue);
  },
  document.getElementById("countdown"));
}

/* z.B. HTML: <span id="countdown"></span> */
```


----------

