把多个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 相关文章推荐
常见的jQuery选择器汇总
Nov 24 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
用NODE.JS中的流编写工具是要注意的事项
Mar 01 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 Javascript
js实现一个页面多个倒计时的3种方法
Feb 25 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
Nov 06 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
如何通过JS实现转码与解码
Feb 21 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
深入了解php4(2)--重访过去
2006/10/09 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
php把数组值转换成键的方法
2015/07/13 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
图解js图片轮播效果
2015/12/20 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python正则实现提取电话功能
2018/02/24 Python
python opencv实现运动检测
2018/07/10 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
python同时替换多个字符串方法示例
2019/09/17 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
多媒体专业自我鉴定
2014/02/28 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
Redis 异步机制
2022/05/15 Redis
python绘制云雨图raincloud plot
2022/08/05 Python