把多个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 相关文章推荐
js实现ASP分页函数 HTML分页函数
Sep 22 Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 Javascript
jQuery代码实现表格中点击相应行变色功能
May 09 Javascript
js+div+css下拉导航菜单完整代码分享
Dec 28 Javascript
JavaScript数组去重的6个方法
Jan 21 Javascript
Node.js操作系统OS模块用法分析
Jan 04 Javascript
Vue动态创建注册component的实例代码
Jun 14 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
JavaScript实现图片上传并预览并提交ajax
Sep 30 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
Mar 23 Javascript
基于jQuery拖拽事件的封装
Nov 29 jQuery
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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
js拼接html注意问题示例探讨
2014/07/14 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
关于vue面试题汇总
2018/03/20 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
python文件名和文件路径操作实例
2017/09/29 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
django的settings中设置中文支持的实现
2019/04/28 Python
java判断三位数的实例讲解
2019/06/10 Python
Tensorflow 实现释放内存
2020/02/03 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
python操作redis数据库的三种方法
2020/09/10 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
食品安全处置方案
2014/06/14 职场文书
市场策划求职信
2014/08/07 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
离婚协议书范本
2015/01/26 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python