Mehrere window.onload auf einer Seite
Tina
- javascript
0 shn1 Gunnar Bittersmann
0 Tina
Hallo zusammen,
ich habe da eine Frage zum onLoad Event:
Ist es möglich mehrere window.onload=function... auf einer Seite zu plazieren?
Im folgenden Beispiel kommen zwei dieser Blöcke vor. Meine Befürchtung ist nun, dass der Browser damit durcheinander kommt und nur einer der beiden Blöcke beim onload auch wirklich ausgeführt wird (z.B. der letzte Block).
Da die Seiten dynamisch generiert werden ist es mir leider auch nicht möglich alle Anweisungen in einen window.onload-Block zusammenzufassen.
Danke im Voraus für Eure Hilfe
Grüße
Tina
Beispiel:
...
HTML-code
...
...
<script type="text/javascript">
window.onload = function(){
// javascript code
}
</script>
...
...
HTML-code
...
...
<script type="text/javascript">
window.onload = function(){
// javascript code
}
</script>
Servus,
verwende eine der unzähligen "addEvent"-Funktionen/-Methoden (google spuckt da einiges aus).
Ich verwende gerne mootools, welches entsprechende Methoden beinhaltet und zudem (optional) unzählige weitere kleine und große Helferlein bietet.
Gruss
Patrick
Hello out there!
Meine Befürchtung ist nun, dass der Browser damit durcheinander kommt und nur einer der beiden Blöcke beim onload auch wirklich ausgeführt wird (z.B. der letzte Block).
Das ist so. Wenn du schreibst
<script type="text/javascript">
[code lang=javascript]window.onload = foo;
</script>
<script type="text/javascript">
window.onload = bar;
</script>[/code]
ist das dasselbe wie
<script type="text/javascript">
[code lang=javascript]window.onload = foo;
window.onload = bar;
</script>[/code]
Die zweite Zuweisung überschreibt die erste. Dasselbe gilt für
<script type="text/javascript">
[code lang=javascript]window.onload = function () { foo(); };
window.onload = function () { bar(); };
</script>[/code]
Deine 'onload'-Funktion müsste so aussehen:
<script type="text/javascript">
[code lang=javascript]window.onload = function ()
{
foo();
bar();
};
</script>[/code]
Da die Seiten dynamisch generiert werden ist es mir leider auch nicht möglich alle Anweisungen in einen window.onload-Block zusammenzufassen.
Du kannst durchaus einen window.onload-Block, einen foo-Block und einen bar-Block haben; die Definitionen der Funktionen foo(), bar() kann auch in anderen 'script'-Elementen stehen (die bei dir dynamisch erzeugt werden).
Wenn du nicht weißt, ob sie überhaupt erzeugt werden bzw. wenn das bei verschiedenen deiner Webseiten anders ist, vor dem Aufruf abfragen, ob die Funktionen existieren:
<script type="text/javascript">
[code lang=javascript]window.onload = function ()
{
if (window.foo) foo();
if (window.bar) bar();
};
</script>[/code]
See ya up the road,
Gunnar
Hi,
herzlichen Dank für Eure Antworten.
Ihr habt mir weitergeholfen.
Grüße
Tina