Dies ist der erste offizielle Eintrag in der neuen Unter-Kategorie JavaScript
. Die vorhergehenden Einträge wurden nachträglich eingefügt. Soviel hierzu.
Szenario
Man hat ein JavaScript, das einen EventHandler umbiegt, z.B. window.onload, ist sich aber nicht sicher, ob vielleicht schon ein anderes Script den Handler umgebogen hat. Wenn man jetzt einfach nochmal umbiegt, dann verliert man diese andere Umbiegung – ähm ganz schön viel ‘umbiegen’
– und das will man nicht.
So ähnlich wie damals, als man beim Interruptumbiegen auch immer aufpassen musste.
Lösung
Bevor man den EventHandler ‘umbiegt’ – schon wieder
– kontrolliert man ob er schonmal umgebogen wurde. Und fügt diesen alten Handler in eine neue Funktion zusammen mit dem neuen Handler. Der folgende Code, den ich auf Simon Willison’s Weblog gefunden habe, tut das:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
Mit addLoadEvent(irgendEinFunktionsName); ruft man dann die Funktion auf und fügt den übergebenen EventHandler ein.





Post a Comment