molily: Parameter bei Event-handler

Beitrag lesen

Hallo,

warum sollte  man window.onload nicht undefined zuweisen? Zu diesem Zeitpunkt ist das anonyme Objekt ja bereits erzeugt und die Eventhandler sind an ihre DOM-Objekte gebunden

Die DOM-Objekte sind erst onload verfügbar, also muss init ein onload-Handler sein, also muss man window.onload = init notieren, auf die eine oder andere Weise.

Mit anderen Worten, der Code bedeutet nur: Wenn das Fenster fertig geladen ist (onload), soll eine Funktion ausgeführt werden

Ja, eben.

und zwar die init()-Methode des gerade erzeugten Objekts, wobei deren Rückgabewert (undefined) dann der window.onload-Handler wird.

Nein.

window.onload = expression;

expression sollte sinnigerweise ein Funktionsobjekt zurückgeben.

Du notierst (letztlich, nachdem der Ausdruck aufgelöst wurde):

window.onload = funktion();

Wenn funktion keinen Rückgabewert hat, kann man sich das sparen und gleich funktion() schreiben. Die Funktion wird sofort aufgerufen.

Habe fast eine Woche daran herumgedoktert und ausgiebig getestet, bis es soweit war.

<head>  
<script type="text/javascript">  
[code lang=javascript]window.onload = {  
 init : function () {  
  document.getElementById("a").onclick = this.handler;  
 },  
 handler : function () {  
  alert("geklickt");  
 }  
}.init();

</script>
</head>
<body>

<p id="a">Klick mich</p>

</body>
</html>[/code]

document.getElementById("a") has no properties

Mathias