Problem mit window.setTimeout()
Dan
- javascript
Hallo!
Ich habe eine folgende JS-Funktion in einer PHP-Datei:
<html><head>
<script type="text/javascript">
<!--
function SDate()
{ document.all.STAR.innerHTML = "<? include ('../../scripte/showtime.php'); ?>";
}
window.setTimeout("SDate()", 10);
//-->
</script>
</head><body>
<p class="Lk" id="STAR">STAR</p></body></html>
Wenn ich die Seite nun aufrufe, erscheint nur das "STAR", jedoch nicht die Zeit...
Ein Blick in den Quelltext zeigt, daß das PHP-Include korrekt aufgelöst wurde; jedoch wird das Ergebnis nicht in den p-Block geschrieben.
Die genannte URL zeigt die betreffende PHP-Datei.
Liegt ein Fehler im Quellcode vor oder könnte es ein serverseitiges Problem sein?
Besten Dank im Voraus
Dan
Sup!
Auf jeden Fall würde ich mir das document.all sparen, daß ist nämlich böse IE5-Syntax.
Gruesse,
Bio
Hallo Bio,
Auf jeden Fall würde ich mir das document.all sparen, daß ist nämlich böse IE5-Syntax.
Lieg ich nu völlig falsch oder hab ich was missverstanden? Ich dachte immer, daß der IE5 DOM schon versteht? document.all habe ich immer dem 4er zugeordnet...
Gruß
Kurt
Sup!
Moep.... böse ist die Syntax auf jeden Fall, und der IE4 ist sowieso ein noch grösserer Abfallhaufen gewesen als der IE5... und die Solaris-Version vom IE4 erst... Junge Junge... das waren noch Zeiten!
Gruesse,
Bio
Hallo,
warum setzt du das include nicht gleich in den p-Block?
Mit freundlichen Grüßen
Lanthan
hi,
Die genannte URL zeigt die betreffende PHP-Datei.
Liegt ein Fehler im Quellcode vor oder könnte es ein serverseitiges Problem sein?
dein code ergibt einen JS-fehler, "document.all.STAR ist kein objekt".
der browser interpretiert vermutlich das JS schon, bevor er mit dem rendern der seite fertig ist - wenn ich deinen ziemlich kurzen timeout von 10 millsekunden mal auf 1000 erhöhe, funktioniert es bei mir jedenfalls ohne probleme.
die frage, was du damit willst, und warum du das so umständlich machst, bleibt aber bestehen.
gruss,
wahsaga
Hallo!
Also erst mal Danke für die Lösungsversuche...
Erst mal zu der Frage "Warum das":
Ich versuche mich erst seit ein paar Tagen mit PHP & Co... Es handelt sich hierbei um eine Sternzeit-Anzeige, die wie auch eine normale Uhrzeit ständig aktualisiert werden sollte...
Nun zu den Vorschlägen:
* window.setTimeout() mit einem Wert von 1000 bringt auch nicht mehr also vorher (deswegen hatte ich auch den Wert verringert, um überhaupt etwas zu sehen)
* include im p-Block bringt nix, weil sich dann die Sternzeit nicht mehr aktualisieren kann (ohne die ganze Seite neu zu laden)
* document.all hab ich entfernt; immerhin, nun wird die Funktion (spürbar) 1x durchlaufen und die Sternzeit in den p-Block geschrieben
Die gewünschte Aktualisierung bleibt aber immer noch aus...
An was liegt das???
Besten Dank
Dan
hi,
Erst mal zu der Frage "Warum das":
Ich versuche mich erst seit ein paar Tagen mit PHP & Co... Es handelt sich hierbei um eine Sternzeit-Anzeige, die wie auch eine normale Uhrzeit ständig aktualisiert werden sollte...
das derartige "dynamik" viele besucher eher nervt als glücklich macht, ist dir bewusst?
immerhin, nun wird die Funktion (spürbar) 1x durchlaufen und die Sternzeit in den p-Block geschrieben
Die gewünschte Aktualisierung bleibt aber immer noch aus...
warum sollte sie _stattfinden_?
setTimeout besagt, führe die funktion xy nachdem die zeitspanne z vergangen ist, _einmal_ aus.
wenn du aber statt einmaliger ausführung die wiederholte ausführung haben willst - also quasi in einem intervall - dann benutze auch die dafür gedachte funktion setInterval().
gruss,
wahsaga
Hi!
Also ich denke mal, daß die angesprochene Zielgruppe damit mehr als zufrieden sein sollte...
Für jene, die es stört gibts eh noch eine tristere Version der Website.
Den Unterschied zwischen setTimeout() und setInterval() muß ich wohl irgendwie durcheinander bekommen haben; auf jeden Fall hab ich nun meine Anzeige...
Besten Dank
Dan