问题:
如何实现在页面加载完毕时执行多个函数,且都把它们绑定到window.onload事件。
1、方法一:
创建一个匿名函数来容纳这多个函数,然后把那个匿名函数绑定到onload事件上。如下所示:
window.onload=function(){
firstfun();
secondfun();
}
2、方法二:
创建一个可以动态添加函数到onload事件的函数。
思路:
①把现有的window.onload事件处理的函数存入变量oldonload.
②如果window.onload事件上没有绑定任何函数,将新函数fun直接绑定到window.onload事件上
③如果window.onload事件上已经绑定了一些函数,将一个匿名函数绑定到window.onload事件上。在匿名函数中执行oldonload,并在末尾追加新函数fun。
function addLoadEvent(fun){
var oldonload=window.onload;
if(typeof window.onload != 'function'){
window.onload=fun;
}else{
window.onload=function(){
oldonload();
fun();
}
}
}
参考文献:
JavaScript DOM 编程艺术(第2版)