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?

War es hilfreich?

Lösung

Vielleicht ist es besser sein wird, verwenden addEventListener / attachEvent?

Erweiterte Ereignisregistrierung Modelle

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 /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top