共享onload 事件
共享onload事件
由于在使用JavaScript 对HTML文件进行行为控制的时候,首先需要浏览器把HTML文件加载完成,才能正确的执行JS代码。文档将被加载到浏览器窗口里,document对象又是window 对象的一个属性。当window 对象触发onload事件时,document对象就已经存在。
那么我们只需要把要执行的函数添加到window对象的onload 事件上,代码就可以正确运行。
window.onload = 函数名
但是很显然,很多情况下JS文件里不可能只有一个函数,那么如何共享onload事件呢?
例如,在页面加载完成时需要执行 firstFunction 和 SecondFunction ,这两个函数。如果直接这样写
window.onload = firstFunction;
window.onload = secondFuction;
secondFunction将会取代firstFunction,也就是firstFunction有可能在页面没加载完成,它就会开始执行。so 解决方法:
方法一(蠢)
直接新定义一个最大的函数把所有函数包起来,在将这个最大函数添加到 onload 事件上。
方法二、 由Simon Willison 写的一个函数,名叫addLoadEvent ,只有一个参数,就是要在页面加载完成时执行的函数名。
function addLoadEvent(func){var oldonload = window.onload; //将现有的window.onload 事件处理函数,存在这里
if(typoef window.onload!='function'){//如果这个处理函数上还没有绑定任何函数,就像平常那样把新函数添加给它。window.onload = func;}else{//如果已经绑定了函数,就把新函数加到现有指令的末尾window.onload = function(){oldonload();func();}}
}
相当于把那些页面加载完成时要执行的函数维护一个队列。
之前的那两个函数只需要这样
addLoadEvent( firstFunction);addLoadEvent( secondFunction);
(由于这一部分知识我想了很久才懂,发出来记录一下)
共享onload 事件相关推荐
- 共享onload事件
function addLoadEvent(func){var oldonload = window.onload;if (typeof window.onload !='function') {wi ...
- iframe的onload事件
很多时候,我们会需要改变一个iframe的地址(src属性),或者使用表单(form)的target在指定的iframe进行提交后,在 iframe加载完毕(onload)时立即响应某个操作,以提高W ...
- 加载多个js onload事件
1.将要加载的内容放到onload事件中 (如果出现多个onload可能会出现函数覆盖) 2.使用 document.attachEvent('onreadystatechange',initJS1) ...
- 原生js中如果有多个onload事件解决方案
原生js中如果有多个onload事件解决方案 参考文章: (1)原生js中如果有多个onload事件解决方案 (2)https://www.cnblogs.com/happy-8090/p/11830 ...
- JavaScript之共享onload
我们知道,当我们将JS代码脚本放到<head></head>标签之间时,这是的js代码加载要先于DOM加载,而我们往往会在JS代码脚本中写一些获取DOM元素的代码,而此时的DO ...
- php iframe js加载不上,js iframe的onload事件不去作用的原因及解决办法
通过createElement_x_x创建的iframe的onload事件在有些时候不响应,具体原因和解决办法如下. 首先,我们来看一下下面这种方法: function createFrame(){ ...
- jQuery的$(document).ready()和JavaScript onload事件
对元素的操作和事件的绑定需要等待一个合适的时机,可以看下面的例子: <!DOCTYPE html> <metacharset="utf-8"> <ht ...
- jquery中DOM加载事件,onload事件和ready事件
全栈工程师开发手册 (作者:栾鹏) jquery系列教程4-事件操作全解 jquery中DOM加载事件 jquery中的DOM加载事件分为onload事件和ready事件.,具体功能如代码中注释. 代 ...
- uniapp在onLoad事件中不显示showToast的问题
如题,最近开发uniapp,发现在onLoad事件中写的showToast无法正常显示,代码如下: onLoad(option){// 判断是否登录if (!this.hasLogin) {uni.s ...
最新文章
- Java 开发技巧详细知识体系总结
- esxi里面安装openwrt和其他虚拟机
- 网易云音乐IPO现场:丁石石石石石石石石石敲钟
- HDU2016 数据的交换输出
- 我国最新十大黑科技发布,颠覆你的想象!
- python自动生成采集规则_【仅供学习参考】Python多线程池采集小说,超简单!
- mySql学习笔记:比sql server书写要简单
- 基于HAPCG 算法的异源影像/多模态图像匹配
- java水晶报表pull模式_水晶报表Pull模式 每次调用水晶报表的时候都要输入数据库密码的解决方案...
- linux certutil删除命令
- 现代光学字符识别技术综述
- js存取cookie以及设置cookie储存时间
- 使用 SQL 加密函数实现数据列的加解密
- 代价函数,损失函数,目标函数区别
- osgEarth示例分析——osgearth_annotation
- Ubuntu18.04安装WPS字体缺失的解决方案
- JSP空间网站上传后发生404解决思路
- 计算机国二外键题,2015年计算机二级考试《MySQL》练习试题模拟
- AAAI 2022主题论文推荐——Semantic Segmentation
- AP最大功率一般为100mW/500mW
热门文章
- 【模板】逆序对(树状数组)
- 塔米狗知识|2022中央企业(央企)名单
- 安徽省计算机二级vpf,计算机二级VPF 表单试题
- Linux磁盘配额无法生效,【Red Hat linux】quota磁盘配额教程,实验验证生效规则
- 当年入门时写的的《大富翁》
- 西安石油大学计算机学院院长刘天时,吴广茂教授做客西安石油大学、畅谈科技论文写作...
- Google浏览器——session Storage和Local Storage
- FANNAFFAN的Linux学习笔记4—Linux文件系统初步
- 4K智能处理平台机器视觉行业应用
- android获取摄像头视频帧数据