window.onload绑定多个事件 —— 两种解决方案

前言

有些函数,必须在网页加载完毕后执行。比如:涉及DOM操作的。

网页加载完毕时会触发一个onload事件,将函数绑定到这个事件上即可。

window.onload = myFunction;

问题来了:如果需要同时绑定多个事件,该如何处理呢?有两种解决方法

方案一

创建一个匿名函数,来容纳需要绑定的多个事件,再讲这个匿名函数绑定到onload事件上

1 window.onload = function(){
2    firstFunction();
3    secondFunction();
4    ......
5 }

方案二

由Simon Willsion编写的addLoadEvent函数:

 1 function addEventLoad(func){
 2    var oldOnload = window.onload;
 3    if(typeof window.onload != ‘function‘){
 4        window.onload = func;
 5    }else{
 6         window.onload = function(){
 7              oldOnload();
 8              func();
 9         }
10    }11
12 }
  1. 将现有的window.onload事件处理函数的值存入变量oldOnload
  2. 如果这个处理函数上还没有绑定函数,则和那样把新函数绑定给它。
  3. 如果已经绑定了函数,则把新的函数追加到指令的末尾。

调用方法:

addEventLoad(firstFuction);

addEventLoad(secondFuction);

时间: 2024-08-18 08:50:48

window.onload绑定多个事件 —— 两种解决方案的相关文章

javascript 在window.onload绑定多个事件函数

近期有个项目当页面Html文档初始化完了之后,要加载多个函数,最初我是这样用的: window.onload=firstfunc(); window.onload=secondfunc(); 但是这样总是最后一个才会被执行. 最后在网上学习了下才知道怎么处理: 1 function addLoad(func){ 2 var oldonload=window.onload; 3 if(typeof window.onload != 'function') 4 window.onload=func;

ListView+CheckBox两种解决方案及原因分析

最近在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox竟然可以选中(窃喜中),这么简单就搞定了,因为数据量较小,也没有发现什么问题. 后来数据多了, 页面需要滑动了, 发现了一个奇怪的问题,前面明明选中了,而再次滑动回去的时候竟然变成未选中状态! 这是我刚开始写的那段错误的代码: @Override public View getView(int position, View convertView,

ios7 自定义UINavigationBar UIBarButtonItem 10px的偏移纠正的两种解决方案

demo下载地址:http://pan.baidu.com/s/1c0eROkS 方案一:利用UINavigationBar 自带的布局item(Fixed space Bar Button Item)来适配ios7. 其实就是在原来返回按钮的位置上在多加一个占位的Item 为UINavigationBar 写一个分类.UINavigationItem+correct_offset.h #import <UIKit/UIKit.h> @interface UINavigationItem (c

onbeforeunload事件两种写法及效果

在符合W3C标准的浏览器里,可以使用addEventListener方法来添加事件. 当不需要为一个事件添加多个处理函数的时候,可以简单的使用onXXX=function(){}的方式来添加事件处理函数,但是当需要为同一事件添加多次处理函数(handler)时,就要用到addEventListener 一般也碰不到什么问题,然而今天在使用onbeforeunload的时候发现,两种方式有一点点区别,区别在于返回值的处理. 直接用 window.onbeforeunload=function(){

Ajax保留浏览器历史的两种解决方案(Hash&amp;Pjax)

总是在github down点东西,github整个界面做的不错,体验也很好~对于其中的源代码滑动的特效最为喜欢了~刚开始以为这个只是普通的ajax请求效果,但是发现这个特效能够导致浏览器地址栏跟随变化,并且再点击前进后退按钮后又可以将代码滑回滑出~~于是乎就来研究下吧~ 一.通过锚点Hash实现: 在这方面其实国内很早就有做了,比如淘宝画报,通过的是在地址栏后面加#锚点实现的,浏览器是可以识别锚点为单位的历史记录的.但不是说页面本身有这个锚点,锚点的Hash只是起到一个引导浏览器将这次的记录推

前端页面a标签嵌套a标签效果的两种解决方案

这是由工作中的一个小改动需求得到的这个解决方案的:那个需求是这样的,如图: 需求原来是球队名字没有点击功能的,而蓝色方框两队之间的比赛点击的时候会跳转到比赛文字直播页面.现在需要要求点击球队名字要跳转到球队资料库页面. 这样就会产生了a标签的嵌套. 但是总所周知a标签是内联元素(inline element),如果嵌套a标签的话浏览器则会解析成: 1 <!-- a标签进行嵌套的时候 --> 2 <a href="#outer">outerA 3 <a hr

sql server中批量插入与更新两种解决方案分享

若只是需要大批量插入数据使用bcp是最好的,若同时需要插入.删除.更新建议使用SqlDataAdapter我测试过有很高的效率,一般情况下这两种就满足需求了 bcp方式 复制代码 代码如下: /// <summary> /// 大批量插入数据(2000每批次) /// 已采用整体事物控制 /// </summary> /// <param name="connString">数据库链接字符串</param> /// <param n

USB设备(移动硬盘、鼠标)掉电掉驱动的两种解决方案

症状: 当你发现"移动硬盘图标"经常无故消失,又自己出现时. 你可以把这个现象称之为"掉电" or "掉驱动". 遇到这种情况,相当不爽. 比如"拷贝大文件"快完成的时候,掉之,那就真的是"我去...". 这种现象在笔记本上尤为常见,台式机相对比较少. 怎么解决呢? 解决方案: 1.取消勾选"允许计算机关闭此设备以节约电源(A)". 从"我的电脑" or "

option触发事件两种方法总结

<!doctype html><html><head> <meta charset="UTF-8"> <title>option触发事件</title> <script src="jquery-1.7.2.min.js"></script></head><body> <select name="" id="sel