Hallo,
eine kurze frage ich habe 4 frames, in einem frame habe ich einen dic container in dem ich 3 scripte je in <span> laufen lasse:
<!--div für die Datumsinformationen//-->
<div id="date">
<span class="akt"><script>wtag()</script></span>
<span class="akt"><script>date()</script></span><br />
<span class="akt"><script>zeit()</script></span>
</div>
Das Script mit der funktion zeit() sol ljetzt alle 60 sec wieder neu aufgerufen werden. Das Prolem ist, wenn ich das Script setTimeout machen dann läd er nicht mehr das ganze frame sondern nur noch die Uhrzeit, das bringt mir ja nichts.
Also wie kann ich es anstellen, dass ich alle 60sec nur das eine Script neu aufrufe? Weiß wie ich den Text in Formular Felder ausgeben kann, da ich die ja über id"." direkt ansprechen kann aber wie sieht das hier aus?
Wenn das nicht geht, nehme ich auch gerne ein Script, was mir eben das ganze Frame alle 60sec neu lädt is zwar etwas blöde aber naja...
Seite 1 von 1
Javascript Alle 60 Sec Wiederholen
Anzeige
#2
geschrieben 15. Dezember 2007 - 13:39
Hi bin mir nicht ganz sicher aber vieleicht geht es ja mit einem Cronjob
#3
geschrieben 15. Dezember 2007 - 17:45
Hallo,
du musst den Inhalt des Spans per DOM-Scripting dynamisch verändern, sonst klappt das ganze nicht.
Ich gehe mal davon aus, dass deine Funktion zeit() ihre Ausgabe per document.write() tätigt. Das funktioniert jedoch nur - wie du schon bemerkt hat - wenn das Dokument geladen wird, ansonsten überschreibt die Ausgabe von document.write() den Inhalt des Dokuments.
Du musst folglich den Textknoten des span-Elements manipulieren. Dazu solltest du als erstes dem "Zeit-span" eine id zuweisen, bspw. zeitAusgabe.
Dann entfernst du das Script aus dem span. Anstelle dessen fügst du ein geschütztes Leerzeichen ein, um den Textknoten des span vorab zu initialisieren. (Ansonsten müsste das Script dies übernehmen)
Die Funtkion zeit() musst du nun dahingehend ändern, dass die Zeit nicht via document.write(jetzt), sondern per document.getElementById("zeitAusgabe").firstChild.nodeValue = jetzt ausgegeben wird. (jetzt steht hier für den Wert, den deine Funktion zuvor für die aktuelle Zeit ermittelt hat.)
Jetzt kann sich die Funktion auch alle 60 Sekunden via window.setTimeout() selbst aufrufen, um die Zeit zu aktualisieren.
Zum Schluss musst du die Zeitausgabe natürlich noch initialisieren; dies machst du einfach mit dem Befehl window.onload = zeit;, welchen du unter deine Funktion schreibst.
du musst den Inhalt des Spans per DOM-Scripting dynamisch verändern, sonst klappt das ganze nicht.
Ich gehe mal davon aus, dass deine Funktion zeit() ihre Ausgabe per document.write() tätigt. Das funktioniert jedoch nur - wie du schon bemerkt hat - wenn das Dokument geladen wird, ansonsten überschreibt die Ausgabe von document.write() den Inhalt des Dokuments.
Du musst folglich den Textknoten des span-Elements manipulieren. Dazu solltest du als erstes dem "Zeit-span" eine id zuweisen, bspw. zeitAusgabe.
Dann entfernst du das Script aus dem span. Anstelle dessen fügst du ein geschütztes Leerzeichen ein, um den Textknoten des span vorab zu initialisieren. (Ansonsten müsste das Script dies übernehmen)
<span id="zeitAusgabe" class="akt"> </span>
Die Funtkion zeit() musst du nun dahingehend ändern, dass die Zeit nicht via document.write(jetzt), sondern per document.getElementById("zeitAusgabe").firstChild.nodeValue = jetzt ausgegeben wird. (jetzt steht hier für den Wert, den deine Funktion zuvor für die aktuelle Zeit ermittelt hat.)
Jetzt kann sich die Funktion auch alle 60 Sekunden via window.setTimeout() selbst aufrufen, um die Zeit zu aktualisieren.
Zum Schluss musst du die Zeitausgabe natürlich noch initialisieren; dies machst du einfach mit dem Befehl window.onload = zeit;, welchen du unter deine Funktion schreibst.
Dieser Beitrag wurde von dblay bearbeitet: 15. Dezember 2007 - 17:47
Zeit ist, was verhindert, dass alles gleichzeitig passiert.
Thema verteilen:
Seite 1 von 1

Hilfe
Neues Thema
Antworten
Nach oben



