把多个JavaScript函数绑定到onload事件处理函数上的方法


Posted in Javascript onSeptember 04, 2016

为了让函数只在页面加载完毕后才得到执行,我们会把函数绑定到onload事件上:

window.onload = userFunction

但如果有两个函数:firstFunction() 和 secondFunction(),都想让它们在页面加载完毕后得到执行,该怎么办?如果这样:

window.onload = firstFunciton;
window.onload = secondFunction;

只有最后一个函数能被执行。由此可得:每个事件处理函数只能绑定一条指令。

但我们可以这样做:

window.onload = function(){
     firstFunction();
     secondFunction();
   }

这是一个解决办法。

不过,还有一个更通的解决方案——额外编写一些代码,但好好处是,有了这些代码,把函数,不管它们有多少,绑定到window.onload事件上的工作就非常简明易行了。

这个函数的的名字是addLoadEvent,它是由Simon Willison编写的。它只有一个参数:打算在页面加载完毕时执行的函数的名字。

下面是addLoadEvent()函数将要完成的操作:

1. 把现有的window.onload事件处理函数的值存入变量oldonload。

2. 如果在这个处理函数上还没有绑定任何函数,就像平时那样把形函数添加给它。

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

下面是addLoadEvent()函数的代码清单:

function addLoadEvent(func){
     var oldonload = window.onload;
     if(typeof window.onload != 'function'){
        window.onload = func;
     }else{
        window.onload = function(){
          oldonload();
          func();
        }
     }
}

这相当于为那些将在页面加载完毕时执行的函数创建了一个队列。如果想把刚才那两个函数添加到队列中去,只需要写出以下代码即可:

addLoadEvent(firstFunction);
addLoadEvent(secondFunction);

以上这篇把多个JavaScript函数绑定到onload事件处理函数上的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript学习笔记(十九) 节点的操作实现代码
Jun 20 Javascript
js控制当再次点击按钮时的间隔时间
Jun 03 Javascript
浅谈Javascript变量作用域问题
Dec 16 Javascript
全面解析bootstrap格子布局
May 22 Javascript
js和jQuery设置Opacity半透明 兼容IE6
May 24 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
Nov 14 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 Javascript
JS简单测试循环运行时间的方法
Sep 04 #Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 #Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
Sep 04 #Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
Sep 04 #Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
Sep 04 #Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 #Javascript
JavaScript 冒泡排序和选择排序的实现代码
Sep 03 #Javascript
You might like
PHP - Html Transfer Code
2006/10/09 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
让您的菜单不离网站
2006/10/03 Javascript
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
node.js中的console用法总结
2014/12/15 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python max内置函数详细介绍
2016/11/17 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python3.6数独问题的解决
2019/01/21 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Python的缺点和劣势分析
2019/11/19 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
python打包生成so文件的实现
2020/10/30 Python
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
小学生教师节演讲稿
2014/09/03 职场文书
运动会加油稿20字
2014/11/15 职场文书
安全生产先进个人总结
2015/02/15 职场文书
大学生实习证明
2015/06/16 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL