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

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

我这个看到的问题是,每次你链接一个函数时,它增加的功能的另一级调用堆栈。有没有更好的办法去了解这一点,并没有必要深度添加到调用栈?

有帮助吗?

解决方案

可能会更好使用的addEventListener /的attachEvent?

高级事件登记模型

其他提示

您可以看看 jQuery的他们是如何处理的。

jQuery的文档

  

只要你喜欢你可以有你的网页上尽可能多的$(document)。就绪事件。然后,将功能在加入它们的顺序执行。

我宁愿使用 “足够好” 的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 /博客/ 2008/04/14 /的addEvent保留-这个/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top