Micha: setTimeout funktioniert nicht

ich hab 2 funktionen, die einfach nur runter zählen sollen (im endeffekt)

---------------------------------------------------
function start_countdown(id, zeit) {
 if(document.getElementById(id)) {
  datum = new Date();
  jetzt = parseInt(datum.getTime() / 1000);
  ende = zeit + jetzt;
  countdown(id, ende);
 }
}
function countdown(id, ende) {
 datum = new Date();
 jetzt = parseInt(datum.getTime() / 1000);
 zeit = ende - jetzt;

if(zeit > 0) {
  restZeit = '<br>restZeit :' + zeit;
  window.setTimeout('countdown("test", ' + ende + ')', 1000);
 }
 else {
  document.writeln('fertig');
 }
}
---------------------------------------------------------
id -> die ID eines HTML layers (in diesem bespiel noch nicht benutzt)
zeit -> die zeit in sekunden, bis zum ende (also bis 0)
ende -> die zeitpunkt des endes in sekunden

das funktioniert weder im IE, noch im opera
opera sagt mir da:
----------------------------------------
Timeout thread: delay 1000 ms
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: No such variable 'countdown'
Backtrace:
  In unknown script
    countdown("test", 1068648574);
----------------------------------------

also wenn die timeout funktion aufgerufen werden soll, kommt der fehler...

es scheint aber am code alles richtig zu sein, cih finde keinen fehler... :(

kann mir einer weiter helfen?

  1. Hi,

    es scheint aber am code alles richtig zu sein,

    nein, der Code überschreibt das Dokument und ergo auch die Funktion, die Du per Timeout aufzurufen versuchst.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. nein, der Code überschreibt das Dokument und ergo auch die Funktion, die Du per Timeout aufzurufen versuchst.

      ARGH, du hast recht... ich könnt mich schlagen...
      danke :)

  2. Hi,

    kann mir einer weiter helfen?

    warum es nicht geht, hat Dir Hajo schon verraten, einen Ansatz - mit dom Methoden - kannst Du Dir hier mal ansehen.

    Gruesse  Joachim

    <html>
    <head>
    <script language="javascript1.2" type="text/javascript">
    function go(nr) {
     if (nr > -1 && document.documentElement) {
      num = document.createTextNode(nr);
      if (document.getElementById("dpl").firstChild) {
       document.getElementById("dpl").removeChild(document.getElementById("dpl").firstChild);
      }
      nr --;
      document.getElementById("dpl").appendChild(num);
      run =  setTimeout('go(' + nr + ')', 50);
     }
    }
    </script>
    </head>
    <body onload="go(100)">
    <p id="dpl">1</p>
    </body>
    </html>