Javascript window.onload Funktion Chaining
-
21-08-2019 - |
Frage
Nur aus Gründen des Experimentierens, ich habe versucht, verschiedene Möglichkeiten, um nicht-destruktiv Kette window.onload
Funktionen in einem Web-Browser zu bestimmen. Das ist die Idee von dem, was ich bisher:
var load = window.onload;
var newFunction = function(){
alert("ha!");
}
window.onload = function(){
load();
newFunction();
}
Das Problem, das ich mit diesem zu sehen ist, dass jedes Mal, wenn Sie eine Funktionskette, es eine andere Ebene der Funktion fügt dem Stapel aufruft. Gibt es einen besseren Weg, um dies zu realisieren, die nicht unnötig Tiefe zu dem Call-Stack nicht hinzufügen?
Lösung
Vielleicht ist es besser sein wird, verwenden addEventListener / attachEvent?
Andere Tipps
Sie können einen Blick auf jQuery , wie sie damit umgehen.
Von der jQuery docs :
Sie können so viele $ (document) .ready Ereignisse auf Ihrer Seite, wie Sie möchten. Die Funktionen werden dann in der Reihenfolge ausgeführt, sie hinzugefügt wurden.
Ich würde eher verwenden, um das "gut genug" addEvent:
var addEvent = function( obj, type, fn ) {
if (obj.addEventListener)
obj.addEventListener(type, fn, false);
else if (obj.attachEvent)
obj.attachEvent('on' + type, function() { return fn.apply(obj, new Array(window.event));});
}
Von: http: //www.ilfilosofo. com / blog / 2008/04/14 / addEvent erhalt-this /