2008-12-14 69 views
1

只是为了实验的缘故,我一直在试图确定在Web浏览器中以非破坏性方式链接window.onload函数的不同方法。这是我到目前为止的想法:Javascript Window.Onload Function Chaining

var load = window.onload; 
var newFunction = function(){ 
    alert("ha!"); 
} 
window.onload = function(){ 
    load(); 
    newFunction(); 
} 

我这个看到的问题是,每次你链接一个函数时,它增加的功能的另一级调用堆栈。有没有更好的方法来解决这个问题,不会给调用堆栈增加不必要的深度?

回答

0

他们如何处理,你可以看看jQuery

jQuery docs

你可以有多个$(document)。就绪事件,您的网页上,只要你喜欢。然后按照它们添加的顺序执行函数。

0

我宁愿使用 “足够好” 的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));}); 
} 

来源:http://www.ilfilosofo.com/blog/2008/04/14/addevent-preserving-this/