1UnitedPower: Events im Firefox

Beitrag lesen

Meine Herren!

e = e || window.event;

Was diesen Hack angeht, hab ich mich ein wenig zu kurz gefasst. Dieser Hack wurde von dem Event-System benötigt, wie es in InternetExplorern 4-6 implementiert war. Da gab es auch input.addEventListener() noch gar nicht. Da gab es nur input.onkeyup. Wenn du dich also für das neue (Standard)Event-System entscheidest, kannst du dir diesen Hack auch sparen, denn dann entfällt die Unterstützung für die (Ur)Zeitgenossen IE4-6 sowieso. Mehr zum Thema, kann man in JavaScript The Defenitive Guide nachlesen.

Und du solltest dich aus stilistischen Gründen für EIN Event-System entscheiden. Das hilft deinen Code in diesem Punkt konsistent zu halten.

du könntest statt dem hier:

window.onload = function() {  
    document.getElementById('meinInput').addEventListener('keyup', meinInputEvent);  
};

das hier benutzen:

window.addEventListener('load', function() {  
    document.getElementById('meinInput').addEventListener('keyup', meinInputEvent);  
});

Oder, in Hinblick auf Martins Kritik, auch das hier:

document.addEventListener('DOMContentLoaded', function() {  
    document.getElementById('meinInput').addEventListener('click', meinInputEvent);  
});

Das DOMContentLoaded-Ereignis wird ausgelöst, nachdem der ganze HTML-Quelltext geparst wurde. Im Gegensatz zu dem load-Ereignis wird nicht zusätzlich darauf gewartetet, dass alle Bilder und andere Resourcen vollständig runtergeladen sind.

Das Skript am Ende des Dokuments zu platzieren macht aber auch aus anderen, praktischen Gründen Sinn: Das Rendering der Seite wird nämlich unterbrochen, wenn der Browser beim Parsen über einen JavaScript-Quelltext stößt. Wenn man den Browser bei diesem Vorgang so spät wie möglich unterbricht, bekommt der Nutzer schon früher etwas zu sehen.

--
“All right, then, I'll go to hell.” – Huck Finn