onload事件会在页面或图像加载完毕后立即执行;支持该事件的JS对象有image, layer, window
当我们想要在页面加载完毕时执行某些函数:
window.onload = myfunction(); // 将函数绑定到事件上
加载一个事件可以这样写,加载两个事件呢?
window.onload = firstFunction;
window.onload = secondFunction;
这样写是错误的,结果只能执行第二个函数。原因是JS没有重载概念,第二个函数覆盖了第一个函数
这时怎么解决呢,我们可以用到匿名函数
window.onload = function(){
firstFunction();
secondFunction();
}
将两个函数放在匿名函数中,并将匿名函数绑定到onload事件上。
那如果遇到多个函数想在onload事件 后执行该怎么办,我们该怎么把它放在匿名函数中呢。这时出现官方的addLoadEvent函数
该函数只有一个参数:页面加载完成后执行的函数的函数名
function addLoadEvent(func){
var oldonLoad = window.onload;
if(typeof window.onload!='function'){
window.onload = func;
}
else{
window.onload = function(){
oldonload();
func();
}
}
}
addLoadEvent(lastFunc);
这个函数做了三个事情:
1、将onload事件函数赋值给一个变量
2、若原onload事件没有绑定函数,则将要添加的函数赋值给onlaod事件
3、若原onload事件绑定了函数,则将这些函数和要绑定的新函数放在匿名函数中绑定到onload事件函数上。