把多个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下查找父节点的简单方法
Aug 13 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
Apr 11 Javascript
js获取ajax返回值代码
Apr 30 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
Nov 03 Javascript
node.js实现端口转发
Apr 14 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
Nov 07 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
吃通javascript正则表达式
Apr 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
模仿OSO的论坛(五)
2006/10/09 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
php文件缓存方法总结
2016/03/16 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
PHP多进程编程实例详解
2017/07/19 PHP
浅谈javascript的数据类型检测
2010/07/10 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
Node.js静态服务器的实现方法
2018/02/28 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
Python中将字典转换为列表的方法
2016/09/21 Python
Python闭包思想与用法浅析
2018/12/27 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
django框架cookie和session用法实例详解
2019/12/10 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
详解Python yaml模块
2020/09/23 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
应届大学生求职信
2013/12/01 职场文书
公司员工检讨书
2014/02/08 职场文书
会走路的树教学反思
2014/02/20 职场文书
中文专业自荐书
2014/06/29 职场文书
社区植树节活动总结
2015/02/06 职场文书
责任书范本大全
2015/05/11 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL