平时做项目经常需要使用window.onload,
用法如下:
functionfunc(){alert("thisiswindowonloadevent!");return;}
window.onload=func;
或者如下:
window.onload=function(){alert("thisiswindowonloadevent!");return;}
但window.onload不能同时加载多个函数。
比如:alert("t")
}
functionb(){
alert("b")
}
window.onload=t;
window.onload=b;
此时可用如下方法解决:
window.onload=function(){t();b();}
另一种解决方法如下:

代码
varoldonload=window.onload;//得到上一个onload事件的函数
if(typeofwindow.onload!='function'){//判断类型是否为'function',注意typeof返回的是字符串
window.onload=func;
}else{
window.onload=function(){
oldonload();//调用之前覆盖的onload事件的函数---->由于我对js了解不多,这里我暂时理解为通过覆盖onload事件的函数来实现加载多个函数
func();//调用当前事件函数
}
}
}
//(完整示例)使用如下:
functiont(){
alert("t")
}
functionb(){
alert("b")
}
functionc(){
alert("c")
}
functionaddLoadEvent(func){
varoldonload=window.onload;
if(typeofwindow.onload!='function'){
window.onload=func;
}else{
window.onload=function(){
oldonload();
func();
}
}
}
addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
//等价于window.onload=function(){t();b();c();}
个人以为直接使用隐式函数(如:window.onload=function(){t();b();c();})更快捷,当然使用addLoadEvent更professional,各取所好吧!
JSwindow.onload追加函数:

代码
if(window.attachEvent)//IE:如果浏览器中存在window.attachEvent函数则使用window.attachEvent函数,判断是否是IE还可以使用:if(document.all){//..}
window.attachEvent("onload",function(){alert("addmethod");});
else//FireFox
window.addEventListener("load",function(){alert("addmethod");},true);
</script>
运行,js中alert弹出消息,问题解决。
============相关资料================
attachEvent将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。
InternetExplorer从5.0开始提供了一个attachEvent方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent对于目前的Opera也适用。但是Mozilla/Firefox并不支持这个方法。但是它支持另一个addEventListener方法,这个方法跟attachEvent差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在attachEvent方法中,事件是以“on”开头的,而在addEventListener中,事件没有开头的“on”,另外addEventListener还有第三个参数,一般这个参数指定为false就可以了。
最后感谢vForm表单验证程序的作者-雷晓宝

















