把多个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上传插件Uploadify使用详解及错误处理
Apr 27 Javascript
jQuery中创建实例与原型继承揭秘
Dec 21 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 Javascript
js获取下拉列表框中的value和text的值示例代码
Jan 11 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
Aug 29 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
JS路由跳转的简单实现代码
Sep 21 Javascript
简述JS控制台的使用
Jul 15 Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 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批量生成随机用户名
2008/07/10 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
php实现每日签到功能
2018/11/29 PHP
jquery 最简单的属性菜单
2009/10/08 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
深入解析Python中的urllib2模块
2015/11/13 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
大学生个人事迹材料
2014/01/21 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
青年文明号服务承诺
2014/03/31 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
物业接待员岗位职责
2015/04/15 职场文书
优秀员工演讲稿
2019/06/21 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
详解Python中的for循环
2022/04/30 Python