把多个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中实现私有属性的写类方式(二)
Dec 04 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
关于RequireJS的简单介绍即使用方法
Oct 20 Javascript
详解AngularJs ui-router 路由的简单介绍
Apr 26 Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
JS实现点击按钮可实现编辑功能
Jul 03 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
JS利用prototype给类添加方法操作详解
Jun 21 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
Jul 28 Javascript
基于Vue全局组件与局部组件的区别说明
Aug 11 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 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
javascript 写类方式之五
2009/07/05 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
vue-router history模式下的微信分享小结
2018/07/05 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
JS实现多功能计算器
2020/10/28 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
小学教师师德反思
2014/02/03 职场文书
关于保护环境的标语
2014/06/09 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL