仅仅为了实验,我一直在尝试确定在Web浏览器中非破坏性地链接window.onload
函数的不同方法。这是我到目前为止的想法:
var load = window.onload;
var newFunction = function(){
alert("ha!");
}
window.onload = function(){
load();
newFunction();
}
我看到的问题是,每次链接一个函数时,它都会向堆栈添加另一级函数调用。有没有更好的方法来解决这个问题,而不会给调用堆栈增加不必要的深度?
答案 0 :(得分:3)
可能最好使用addEventListener / attachEvent?
答案 1 :(得分:0)
答案 2 :(得分: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/