把多个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 29 Javascript
jquery checkbox,radio是否选中的判断代码
Mar 20 Javascript
js propertychange和oninput事件
Sep 28 Javascript
JS弹出可拖拽可关闭的div层完整实例
Feb 13 Javascript
jQuery Real Person验证码插件防止表单自动提交
Nov 06 Javascript
jQuery添加删除DOM元素方法详解
Jan 18 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
Angular1.x复杂指令实例详解
Mar 01 Javascript
vue项目中导入swiper插件的方法
Jan 30 Javascript
Vue中对比scoped css和css module的区别
May 17 Javascript
微信小程序云开发之使用云数据库
May 17 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中smarty模板条件判断用法实例
2015/06/11 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
QQ登录简单实现代码
2021/03/09 Javascript
限制文本字节数js代码
2007/03/06 Javascript
JavaScript修改css样式style
2008/04/15 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
python中字典增加和删除使用方法
2020/09/30 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
文艺晚会策划方案
2014/06/11 职场文书
放射科岗位职责
2015/02/14 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js