Javascript window.onload encadeamento Function
-
21-08-2019 - |
Pergunta
Apenas por uma questão de experimentação, eu estive tentando determinar maneiras diferentes para funções cadeia window.onload
não-destrutiva em um navegador web. Esta é a idéia do que eu tenho até agora:
var load = window.onload;
var newFunction = function(){
alert("ha!");
}
window.onload = function(){
load();
newFunction();
}
O problema que vejo com isso é que cada vez que você encadear uma função, ele acrescenta outro nível de chamadas de função para a pilha. Existe uma maneira melhor de fazer isso que não acrescentar profundidade desnecessária para a pilha de chamadas?
Solução
Pode ser que vai ser melhor usar addEventListener / attachEvent?
modelos de registro de evento avançadas
Outras dicas
Você poderia ter um olhar para jQuery como eles lidam com isso.
A partir da jQuery docs :
Você pode ter tantos $ (document) .ready eventos em sua página como você gosta. As funções são executadas na ordem em que foram adicionados.
Eu prefiro usar o addEvent "bom o suficiente":
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));});
}
De: http: //www.ilfilosofo. com / blog / 2008/04/14 / addEvent-preservando-presente /