Okt 2008

Javascript onload • Wenn ein Fenster oder Frame geladen wurde

 
 

Javascript Event für BODY, FRAMESET, WINDOW

Javascript onload ruft einen Event Handler auf, wenn der Browser ein Fenster oder die Frames in einem Fenster geladen hat. Das Laden bezieht alle Skripte, Grafiken, Plugins und Stylesheets ein.

onload wird typischerweise benutzt, um Funktionen aufzurufen, nachdem die Seite vollständig geladen wurde, denn erst dann existieren die Elemente der Seite als DOM-Objekte. Erst nach dem Eintreten des onload-Ereignisses können Event Handler wie onclick oder onsubmit für die Elemente der Seite abgehört werden. Der onload-Event Handler bildet darum häufig die zentrale Funktion für die Registriertung weiterer Event Handler.

window.onload – Beschränkungen

  1. Dem onload-Ereignis kann nur eine Funktion zugeordnet werden. Wenn mehr als ein Skript beim Laden des Fensters aufgerufen werden soll, wird eine zentrale Funktion benötigt, die alle Funktionen aufruft – damit sind die Skripte dann aber nicht mehr unabhängig.
  2. Das Script wird erst ausgeführt, wenn die Seite vollständig geladen ist. Bis alle Skripte, Grafiken, Plugins und Stylesheets geladen sind, kommt es zu einer sichtbaren Verzögerung, wenn das Skript die Darstellung der Seite beeinflußt.

Als Antwort auf Problem (1) lassen sich mehrere Javascript-Funktionen für ein Ereignis mit Event Listener des W3C registrieren.

Eine Lösung für Problem (2) platziert das Skript am Ende des Markups der Seite vor der schließenden Klammer des <body>-Tags, statt das Skript im head-Element der Seite zu laden. Zwar wird auf diese Weise das Skript erst starten, wenn das Markup vollständig geladen ist, aber das Skript muss nicht auf das Laden der Bilder warten. Diese Lösung wiederspricht der Trennung von Markup, Stil und Verhalten.

Andere Lösungsansätze

Ein weiterer Lösungsansatz hält mit Hilfe von Timern Ausschau, ob ein bestimmtes Element bereits geladen ist.

Die Javascript-Library jQuery bietet Funktionen, um Javascript-Code auszuführen, nachdem das DOM geladen und navigierbar ist.

Eine generelle Lösung des onload-Problems ist nicht in Sicht und so bleibt die Laden der Funktionen auch beim W3C auch weiterhin eine schmerzhafte Lücke.

Attribute

target
Objekt zu dem das Ereignis ursprünglich gesendet wurde
eventPhase
Phase, in der das Ereignis bearbeitet wird: AT_TARGET, BUBBLING_PHASE, CAPTURING_PHASE
bubbles
nein
cancelable
nein
timeStamp
Zeit in Millisekunden, zu der das Ereignis eingetreten ist
   


Copyright © 2000 - 2010 Media Engineering Alle Rechte vorbehalten
Design + Programmierung Media Engineering U. Häßler 47506 Neukirchen-Vluyn • Impressum und Nutzungsbestimmungen