oliver: nach setTimeout ist function nicht mehr definirt

hiho forum

ich hab n problem mit setTimeout, irgendwie frisst das ne javascript fu8nction ????
vielleicht kann mir jemand helfen????

hier der code :

<html>
<head>
<title>Untitled</title>

<script language="JavaScript">  

<!--
i=0;
function test()
{
  document.writeln("test");
    window.setTimeout("test()",1000);
}
test();

//-->
  </script>
</head>
<body>
</body>
</html>

es wird folgende fehlermeldung rausgegeben :   test is not defined.

und das ganze läuft (nicht) im Netscape.

vilen dank schonmal
olli

  1. Hi,

    ich hab n problem mit setTimeout, irgendwie frisst das ne javascript fu8nction ????

    nicht window.setTimeout() ist das Problem, sondern document.writeln(). Wenn Du in ein bereits fertiges Dokument etwas schreiben möchtest, gibt es für den Browser eigentlich nur eine logische Konsequenz:

    Da es keinen geeigneten Platz mehr zum Schreiben gibt (das Dokument ist ja schließlich fertig), wird einfach ein neues Dokument geöffnet. Von dem alten bleiben logischerweise keine Informationen übrig, weil sie überschrieben werden.

    Dein Vorhaben, eine Seite langsam aufzubauen, ist übrigens nur dadurch lösbar, daß Du die Daten woanders (z.B. in einem anderen Frame, oder außerhalb des Layers, den Du beschreibst) im Speicher (einer Variable also) aufbaust und _komplett_ in das Dokument schickst. Sauberer ist dies mit document.open() und document.close().

    Cheatah

    1. Oder ein SPAN oder DIV Element benutzen, welches mit DHTML (id.innerHtml) gefüllt wird.

      CIAO
      Michael

      Hi,

      ich hab n problem mit setTimeout, irgendwie frisst das ne javascript fu8nction ????

      nicht window.setTimeout() ist das Problem, sondern document.writeln(). Wenn Du in ein bereits fertiges Dokument etwas schreiben möchtest, gibt es für den Browser eigentlich nur eine logische Konsequenz:

      Da es keinen geeigneten Platz mehr zum Schreiben gibt (das Dokument ist ja schließlich fertig), wird einfach ein neues Dokument geöffnet. Von dem alten bleiben logischerweise keine Informationen übrig, weil sie überschrieben werden.

      Dein Vorhaben, eine Seite langsam aufzubauen, ist übrigens nur dadurch lösbar, daß Du die Daten woanders (z.B. in einem anderen Frame, oder außerhalb des Layers, den Du beschreibst) im Speicher (einer Variable also) aufbaust und _komplett_ in das Dokument schickst. Sauberer ist dies mit document.open() und document.close().

      Cheatah

      1. Hi,

        Dein Vorhaben, eine Seite langsam aufzubauen, ist übrigens nur dadurch lösbar, daß Du die Daten woanders (z.B. in einem anderen Frame, oder außerhalb des Layers, den Du beschreibst) [...]

        Oder ein SPAN oder DIV Element benutzen,

        tja, was ist denn wohl ein Layer? ;-) SPAN reicht übrigens nicht, wenn es crossbrowser funktionieren soll.

        welches mit DHTML (id.innerHtml) gefüllt wird.

        Unterstützt m.W. nur IE4+. Also komplett neu schreiben.

        Cheatah

    2. hi Cheatah

      ich wollte eigentlich erreichen, das unten an die seite etwas angefügt wird.
      also ungefähr so.
      ich hab 2 frames, der eine,frame 1, ( nicht sichbar)wird alle 5 sec refrescht und holt damit neue infos, die dann im anderen (frame2) mit writeln angezeigt werden sollen.
      ich betreibe diesen auffwand , damit der frame 2 nicht rumflackert beim neuladen der seite.

      1. Hi,

        ich wollte eigentlich erreichen, das unten an die seite etwas angefügt wird.

        jepp. Wie Du das löst, habe ich Dir beschrieben.

        Cheatah

    3. hi
      das hat mir sehr weitergeholfen, danke
      das ganze sieht jetzt richtig gut aus :))
      Thanx a lot