Einfache Funktion zum Schreiben in <span>
Marc
- javascript
Hallo,
erstmal - das sind meine ersten Schritte in javascript.
ich habe eine php-Seite. Diese lädt aus einer Datenbank, ob gerade ein Gewinnspiel läuft. Dazu wird die aktuelle Zeit mit der Endzeit des Geinnspiels verglichen. Wenn das Spiel noch läuft, kommt an der rechten Seite sowas wie "Nächste Auslosung in xx Minuten".
Das funktioniert auch alles, aber ich möchte als Schmankerl die restliche Zeit mittels countdown anzeigen lassen.
Das sieht bisher so aus:
<head>
<script type="text/javascript">
<!--
function countdown(endzeit, aktzeit, id)
{
var restzeit = Math.round((endzeit - aktzeit)/60);
document.getElementById("restzeit_" + id).innerHTML = restzeit;
setTimeout('countdown(' + endzeit + ', ' + (aktzeit + 1) + ', ' + id + ')', 1000);
}
// -->
</script>
</head>
Da, wo ggf. die verbleibenden Minuten stehen sollen, habe ich diesen Code:
...
<span style="color:#B8012D;font-weight:bold">Noch
<script type="text/javascript">
<!--
countdown($endTimestamp, ".time().", $i);
// -->
</script>
<span id="restzeit_$i" >g</span> Minuten bis zur<br />
nächsten Verlosung</span>
...
Die " sind escaped, da es sich um PHP-Script handelt.
Wenn ich die Seite nun aufrufe, habe ich im IE immer den Fehler
"document.getElementsById(...) ist Null oder kein Objekt"
Was mache ich da nur falsch?
Hallo Marc.
Wenn ich die Seite nun aufrufe, habe ich im IE immer den Fehler
"document.getElementsById(...) ist Null oder kein Objekt"
Wenn das Script (im Head) geladen wird, existiert ja das span-Element auch noch nicht, noch nicht einmal ein body-Element.
Daher solltest du window.http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onload@title=onload = function() {/* Dein Script */} nutzen.
Zudem solltest du dir überlegen, ob du nicht statt setTimeOut lieber http://de.selfhtml.org/javascript/objekte/window.htm#set_interval@title=setInterval zu nutzen möchtest, welches du beendest, wenn der gewünschte Zeitpunkt erreicht ist.
Einen schönen Freitag noch.
Gruß, Ashura
Ich hab es raus - dank deiner Hilfe :)
Ich hätte das anzusprechende <span> natürlich hinter den Aufruf der Funktion setzen müssen...