Variable aus funktion nutzen
Fux
- javascript
0 EKKi0 Fux0 suit0 Gunnar Bittersmann
0 Steel
Hi,
<head>
<script type="text/javascript">
sek = 60;
function countdown()
{
sek--;
if(sek > 0) {
setTimeout('countdown()',1000);
}
else {
tu was anderes
}
}
</script>
</head>
<body onload="countdown()">
Wie kann ich im Body auf die Variable "sek" zugreifen? Ich würde gerne einen Countdown runterzählen lassen.
Und kann ich die Funktion auch anders als mit body onload aufrufen?
Fux
Mahlzeit Fux,
Wie kann ich im Body auf die Variable "sek" zugreifen?
Was verstehst Du unter "im Body auf die Variable 'sek' zugreifen"? Innerhalb des HTML-Codes? Gar nicht.
Ich würde gerne einen Countdown runterzählen lassen.
Dann solltest Du z.B. einerseits Deinen HTML-Code so erweitern, dass dort ein eindeutig identifizierbares Element vorhanden ist (z.B. mit einer ID), und andererseits Deine Funktion "countdown()" so erweitern, dass sie bei jedem Durchlauf den Wert der Variablen "sek" in das vorstehend beschriebene Element hineinschreibt.
Und kann ich die Funktion auch anders als mit body onload aufrufen?
Ja.
Gegenfrage: wann und wie soll der Funktionsaufruf denn erfolgen, d.h. wann und wie soll der Countdown denn gestartet werden? Manuell? Automatisch?
MfG,
EKKi
Hi EKKI,
Dann solltest Du z.B. einerseits Deinen HTML-Code so erweitern, dass dort ein eindeutig identifizierbares Element vorhanden ist (z.B. mit einer ID), und andererseits Deine Funktion "countdown()" so erweitern, dass sie bei jedem Durchlauf den Wert der Variablen "sek" in das vorstehend beschriebene Element hineinschreibt.
Ok. Das habe ich, glaub ich, verstanden.
Gegenfrage: wann und wie soll der Funktionsaufruf denn erfolgen, d.h. wann und wie soll der Countdown denn gestartet werden? Manuell? Automatisch?
Eigentlich automatisch, insofern wäre body onload schon das richtige. Aber da steht schon der Aufruf einer anderen Funktion drin und ich tu mich sicher schwer, diese um die jetztige Funktion zu erweitern. Daher die Frage.
Fux
Eigentlich automatisch, insofern wäre body onload schon das richtige. Aber da steht schon der Aufruf einer anderen Funktion drin und ich tu mich sicher schwer, diese um die jetztige Funktion zu erweitern. Daher die Frage.
du kannst einen handler auch mit mehreren Funktionen befüllen - oder gar keine Funktion verwenden und dort eine Prozedur direkt notieren.
@@Fux:
nuqneH
Eigentlich automatisch, insofern wäre body onload schon das richtige.
Womöglich nicht. Onload feuert erst, wenn alles (einschl. externer Ressourcen wie Bilder etc.) geladen ist. Vermutlich willst du den Counter schon früher starten.
Du kannst das Script als letztes im 'body' notieren (dann ist das DOM vollständig) und brauchst dann nicht mal einen Eventhandler zum Starten.
Qapla'
Hi!
Je nachdem was der Counter bewirken soll, kannst Du ihn auch schon im Header starten. Du müsstest dann das als Ausgabe dienende Element auf Existenz prüfen und reinschreiben, wenn vorhanden.
@@Steel:
nuqneH
Je nachdem was der Counter bewirken soll, kannst Du ihn auch schon im Header starten.
Von was für einem Header redest du?
Du müsstest dann das als Ausgabe dienende Element auf Existenz prüfen und reinschreiben, wenn vorhanden.
Warum sollte man das tun wollen?
Qapla'
Hi,
Je nachdem was der Counter bewirken soll, kannst Du ihn auch schon im Header starten.
Von was für einem Header redest du?
Da verlinkst du aber auf veraltete Quellen ...
http://www.w3.org/TR/html5/sections.html#the-header-element
MfG ChrisB
@@ChrisB:
nuqneH
Da verlinkst du aber auf veraltete Quellen ...
Touché!
Jetzt bin ich mir _sicher_, dass Steel genau das meinte. ;-)
Qapla'
Moin,
Jetzt bin ich mir _sicher_, dass Steel genau das meinte. ;-)
*hust*
head *murmelmurmel*