alert (typeof eventObjekt);
if (typeof eventObjekt != "undefined") // W3C-Standard
{
window.addEventListener ("load", init, false);
function init()
{
.............
}
}
else // Internet Explorer
{
window.attachEvent ("load", init);
function init()
{
..............
}
}
Da hast du zwei Dinge zusammengeworfen:
1\. Das Registrieren von Handler-Funktionen
2\. Das Verarbeiten von Events in Handler-Funktionen
1\. Die Registrierung: Da notierst du die Handlerfunktion außerhalb der Fähigkeiten-Weiche:
function init (e) {...}
if (window.addEventListener) {
window.addEventListener("load", init, false);
} else if (window.attachEvent) {
window.attachEvent("onload", init);
}
Das ist soweit alles. Das Event-Objekt hat mit der Registrierung nichts zu tun.
2\. Die Verarbeitung. Jetzt kommt das Event-Objekt ins Spiel! Das gibt es logischerweise nur in der Handler-Funktion, hier »init« - nicht zu dem Zeitpunkt, wo du die Event-Überwachung erst startest, aber noch gar kein Event eingetreten ist.
Die Handlerfunktion nimmt das Event-Objekt als Parameter entgegen. DARIN solltest du schreiben:
function init (e) {
if (!e) e = window.event;
// Mach was mit e
}
Beispiel aus <http://redaktion.selfhtml.org/selfhtml-preview/javascript/einbindung.html#event-objekt>:
~~~javascript
function handlerfunktion (eventObjekt) {
// Vereinheitlichung:
if (!eventObjekt) {
// Korrektur für den Internet Explorer
eventObjekt = window.event;
}
...
}
Im Übrigen brauchst du die Handlerfunktion init nicht doppelt zu notieren. Notiere sie außerhalb der Abfrage if (document.addEventListener) {} else if (document.attachEvent) {}.
Mathias