certo che esiste, e' stato anche alla base di un concorso
mettiamo che tu abbia una funzione addEvent
codice:
function addEvent(obj,ev,fn){
if(obj.addEventListener) {
// metodo w3c
obj.addEventListener(ev, fn, false);
} else if(obj.attachEvent) {
// metodo IE
obj.attachEvent('on'+ev, fn);
} else {
// se i suddetti metodi non sono applicabili
// se esiste gia' una funzione richiamata da quel gestore evento
if(typeof(obj['on'+ev])=='function'){
// salvo in variabile la funzione gia' associata al gestore
var f=obj['on'+ev];
// setto per quel gestore una nuova funzione
// che comprende la vecchia e la nuova
obj['on'+ev]=function(){if(f)f();fn()}
}
// altrimenti setto la funzione per il gestore
else obj['on'+ev]=fn;
}
}
puoi settare un onload semplicemente cosi'
codice:
addEvent(window,'load',nomeFunzione);
e accodare l' esecuzione di un altra funzione con
codice:
addEvent(window,'load',nomeAltraFunzione);
se dovesse servire passare parametri a funzione() ti servi di una funzione generica
codice:
addEvent(window,'load',function(){funzione('pippo')});
a te interessa usarla per l' onload, ma potresti riutilizzarla per settare qualsiasi tipo di gestore evento, aggiungendo la funzione da eseguire a qualsiasi eventuale funzione gia' settata in altra maniera (gestori evento nel markup, via javascript "tradizionale", addEvent stesso)
codice:
addEvent(document,'mousemove',funzioneAlMovimentoMouse);
addEvent(document.getElementById('id_link'),'click',function(){allerta('ciao')});
personalmente uso questo approccio tenendo a mente tutte le considerazioni fatte da ppk, che valgono ben una lettura se hai voglia di approfondire
ciao