执行一次。functionaddLoadEvent(func){
varoldοnlοad=window.onload;
if(typeofwindow.onload!zhidao='function'){
window.οnlοad=func;
}else{
window.οnlοad=function(){
oldonload();
func();
}
}
}
functionaddload(){
alert("addload");
}
//执行到这里的时候直接弹出onload,与onload事件无关内
window.οnlοad=alert("onload");
//监听onload事件,所以onload事件触容发之后才会弹出addload
addLoadEvent(addload);
//执行到这里的时候直接弹出last,与onload事件无关
alert("last");
追问非常感谢你的回答,对我有很大的帮助,只是还有一些疑惑,希望能再辛苦你帮我解答一下,具体内容我写在补充问题里了。
追答请问为什么window.οnlοad=alert("onload");与onload无关呢,alert方法应该也是函数吧?
因为这里是调用alert函数,window.onload会接收alert函数的执行结果。因为alert函数没有返回结果。所以window.onload还是没有监听任何东西。这样弹出顺序是"last",//直接弹出"onload","addload"//onload事件触发之后弹出直接调用的函数会马上执行,监听某个事件的函数是当那个事件发生的时候执行。//如果我们直接使用window.onload绑定几个函数
functionfn1(){alert('fn1')}
functionfn2(){alert('fn2')}
functionfn3(){alert('fn3')}
window.οnlοad=fn1;
window.οnlοad=fn2;//覆盖了前面的
window.οnlοad=fn3;//覆盖了前面的
//等onload事件触发的时候只弹出fn3
//如果使用addLoadEvent函数绑定
functionfn1(){alert('fn1')}
functionfn2(){alert('fn2')}
functionfn3(){alert('fn3')}
addLoadEvent(fn1);
addLoadEvent(fn2);
addLoadEvent(fn3);
//等onload事件触发的时候按绑定顺序弹出fn1,fn2,fn3
本回答由电脑网络分类达人董辉推荐
htmlonload事件怎么没有用啊?
1.可以在Body里面执行