在给网页加一些特效时经常要在<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函数主要是完成如下的操作: 

1、把现有的window.onload事件处理函数的值存入到oldonload中。

2、如果在这个处理函数上还没有绑定任何函数,就将该函数添加给它。

3、如果在这个处理函数上已经绑定了一些函数,就把该函数追加到现有指定的末尾。

调用方法:通过addLoadEvent函数,只需要调用该函数就可以进行绑定了。

addLoadEvent(firestFunction);
addLoadEvent(secondFunction);
//或
addLoadEvent(function(){
document.body.style.backgroundColor = 'yellow';
firstFunction();
});

最新文章

  1. Linux下反弹shell的种种方式
  2. PHP preg_replace使用例子
  3. Atitit 马尔可夫过程(Markov process)&#160;hmm隐马尔科夫。&#160;马尔可夫链,的原理attilax总结
  4. Nginx反向代理多虚拟主机代理
  5. 使用Fragment应用放置后台很久,被系统回收,出现crash
  6. Android 开源项目DiskLruCache 详解
  7. xtream 示例介绍
  8. 二叉树Bynary_Tree(2):二叉树的递归遍历
  9. SignalR的另类实现技巧
  10. python3全栈开发-什么是粘包、粘包现象、如何解决粘包
  11. SpringSecurity实现权限管理和页面导航栏动态实现
  12. ASM
  13. 对于Java Bean的类型转换问题()使用 org.apache.commons.beanutils.ConvertUtils)
  14. python中的正则表达式--re模块
  15. fibonacci数列的性质和实现方法
  16. WebRTC开发基础(WebRTC入门系列1:getUserMedia)
  17. 一家VC支持企业的发展轨迹&mdash;&mdash;了解每次融资后股权和期权的变化,以及股份是如何被稀释的【转载】
  18. 基于Linux的Samba开源共享解决方案测试(三)
  19. C#中字符串 &quot;驻留&quot;与Lock(转载)
  20. First Blood

热门文章

  1. Redis学习笔记(4) Redis事务、生存时间及排序
  2. java打包文件夹为zip文件
  3. Android之菜单总结
  4. python操作日期和时间的方法
  5. JBD日志的定位、分析和恢复
  6. FLEX各种特效集合
  7. zeromq中两个dealer 通过一个router进行通信
  8. 一些关于Viewport与device-width的东西~
  9. Javascript初学篇章_5(对象)
  10. linux中test与[ ]指令的作用