Mathias benutzt addEvent, um mehrere Funktionen beim Eintreten des load-Ereignesses von window ausführen zu lassen - was soll da bitte im DOM noch gar nicht vorhanden sein?
Okay, das sehe ich jetzt auch so, beschrieben hat er dies jedoch nicht.
addEvent ist eine Allround-Funktion für jegliches Event-Handling. »window.onload« ist auch nur Event-Handling, also kann man addEvent (mit addEventListener/attachEvent) auch dafür verwenden.
Im Beispiel unter 21.2 addEvent-Helferfunktionen spiegelt sich dies ebensowenig wieder:
<p id="beispielabsatz">Klick mich!</p>
<script type="text/javascript">
> ~~~javascript
function absatzKlick () {
> alert("Der Absatz wurde geklickt!");
> }
> addEvent(document.getElementById("beispielabsatz"), "click", absatzKlick);
</script>
Korrekt, das Beispiel demonstriert nicht das Registrieren von Handlern für den dokumentweiten load-Event. Es demonstriert den Einsatz beim Event-Handling bei DOM-Elementen. In dem Fall ist der Zugriff auf das Element natürlich vonnöten. Weil es in dem Beispiel bloß darum geht, den Aufruf von addEvent zu illustrieren, habe ich die drei Teile an der Stelle weggelassen und mit einem Script gearbeitet, was bereits durch seine Lage im Dokument Zugriff auf das zuvorliegende Element hat.
Mit addEvent sähen diese (mit mehreren globalen Funktionen) so aus:
// 1. Teil
addEvent(window, "load", absatzKlickInit);
// 2. Teil
function absatzKlickInit () {
addEvent(document.getElementById("beispielabsatz"), "click", absatzKlick);
}
// 3. Teil
function absatzKlick () {
alert("Der Absatz wurde geklickt!");
}
Da ich das für nicht optimal halte und den Einsatz von DOMContentLoaded empfehle, habe ich (noch) kein entsprechendes Beispiel aufgenommen.
Mathias