为了让函数在网页加载完毕后立即执行,网页加载完毕后会出发一个onload事件,这个事件与window对象关联,必须把函数绑定到这个时间上,有两种解决方案:
1.常见解决方案:
先创建一个匿名函数来容纳函数,然后把匿名函数绑定到onload事件上;如下所示:
window.onload=function(){
firstFunction();
secondFunction();
}
2.弹性最佳解决方案—不管页面加载完毕时执行多少个函数,它都可以应付自如;这个函数名是addLoadEvent,由Simon Willison编写。只有一个参数:打算页面加载完毕时执行的函数的名字。
下面是addLoadEvent函数完成的操作:
- 把现有的window.onload事件处理函数的值存入变量oldonload;
- 如果这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它;
- 如果这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。
下面是addLoadEvent函数的代码清单:
function addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload != 'function'){
window.onload=func;
}else{
window.onload=function(){
oldonload();
func();
}
}
};
//这将把那些在页面加载完毕执行的函数创建为一个列队
addLoadEvent(firstFunction);
addLoadEvent(secondFunction);
所有内容均来自《JavaScript DOM 编程艺术(第2版)》