把多个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 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
Jun 14 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
Aug 18 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
深入理解Angularjs中的$resource服务
Dec 31 Javascript
javascript设计模式之模块模式学习笔记
Feb 15 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
javascript使用substring实现的展开与收缩文字功能示例
Jun 17 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 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
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
javascript radio 联动效果
2009/03/04 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
js变量提升深入理解
2016/09/16 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
python中update的基本使用方法详解
2019/07/17 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
颁奖晚会主持词
2014/03/25 职场文书
新品发布会主持词
2014/04/02 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
JS封装cavans多种滤镜组件
2022/02/15 Javascript
如何利用python创作字符画
2022/06/25 Python