在给网页加一些特效时常常要在<body>中加入“onload”事件,即在网页加载完后执行某事件,例如:<body onload=”alert(‘欢迎光临!')”,但这样作有个大的缺陷,事件会在网页彻底下载完后才会执行,包括网页中的图片或Flash等,若是网页中的图片比较大或有不少图,可能还没等网页彻底下载完网友已经点击连接到其它网页去了,这样这个事件就没有执行了。另外在某些特殊状况下可能还修改不了网页的body参数。如在别人网站发表文章时,或用CMS整站系统时。
这时咱们会想到用“window.onload”或“document.body.onload”来替换<body>中的onload事件,的确,问题解决了,但在加载多个onload事件时或控制加裁顺序时还会出现一些问题,直到我发现“Paul Koch”写的addLoadEvent()函数后,全部问题都解决了。若是你们必定要用“window.onload”或 “document.body.onload”来替换<body>中的onload事件,建议你们用前者,Firefox浏览器中无效,即兼容性有问题。浏览器
function addLoadEvent( func ){ var oldonload = window.onload; if(typeof window.onload != "function"){ window.onload = func; }else{ window.onload = function () { oldonload(); func(); }; }; };
addLoadEvent函数主要是完成以下的操做:
一、把现有的window.onload事件处理函数的值存入到oldonload中。
二、若是在这个处理函数上尚未绑定任何函数,就将该函数添加给它。
三、若是在这个处理函数上已经绑定了一些函数,就把该函数追加到现有指定的末尾。函数
调用方法:经过addLoadEvent函数,只须要调用该函数就能够进行绑定了。网站
addLoadEvent(firestFunction); addLoadEvent(secondFunction); //或 addLoadEvent(function(){ document.body.style.backgroundColor = 'yellow'; firstFunction(); });