1

只是为了实验,我一直在尝试确定window.onload在网络浏览器中非破坏性链接功能的不同方法。这是我到目前为止的想法:

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

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

4

3 回答 3

3

使用 addEventListener/attachEvent 会更好吗?

高级事件注册模型

于 2008-12-14T09:30:27.900 回答
0

你可以看看jQuery他们是如何处理这个问题的。

来自jQuery 文档

您可以在页面上设置任意数量的 $(document).ready 事件。然后按照添加的顺序执行这些函数。

于 2008-12-14T09:29:47.090 回答
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/

于 2008-12-14T09:33:39.703 回答