onload事件---addLoadEvent函数

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事件函数上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值