原生javascript 共享onload事件
JavaScript事件 原生 共享 onLoad
2023-09-27 14:26:14 时间
在工作时,我们给一个元素绑定了事件,如果dom还没加载完成,就执行了js代码,就不会绑定成功。常规解决方案就是用:
window.onload = EventFunction;
可是如果有两个 事件,
window.onload = EventFunction1;
window.onload = EventFunction2;
那2就会将1取代,这时你可能会想:每个事件处理板书只能绑定一条指令。有一种办法可以让我们避开这一难题:可以先创建一个匿名函数来容纳这两个函数,然后把那个匿名函数绑定到onload事件上,如下所示:
window.onload = function(){ firstFunction(); secondFunction(); }
它确实能很好地工作————在需要绑定的函数不是很多的场合,这应该是最简单的解决方案了。
这里还有一个弹性最佳的解决方案——不管你打算页面加载完毕时执行多少个函数,它都可以应付自如。这个方案需要额外编写一些代码,把函数绑定到window.onload事件就非常易行了。
这个函数的名字是addLoadEvent,它是由Simon Willison写的。它只有一个参数:打算在页面加载完毕时执行的函数的名字。
下面是此函数要完成的操作:
1.把现有的 window.onload 事件处理函数的值存入变量 oldonload;
2.如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它;
3.如果在这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。
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);
我发现这个函数非常实用,尤其是在代码变得越来越复杂的时候。无论打算在页面加载完毕时执行多少个函数,只要定一条语句就可以安排好一切。
相关文章
- 2016 年关于JavaScript的技术栈展望
- chrome Sources选项卡 设置JavaScript事件断点
- 【探索】机器指令翻译成 JavaScript
- javascript,jquery在父窗口触发子窗口(iframe)某按钮的click事件
- DRP中用到的JavaScript验证
- 使用JavaScript修改伪类样式的方法
- 原生JavaScript事件详解
- JavaScript获取onclick、onchange等事件的值
- 前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
- Javascript框架的自定义事件(转)
- 【JavaScript】事件介绍
- 手把手 | 30行JavaScript代码,教你分分钟创建神经网络
- Javascript防冒泡事件与Event对象
- [JavaScript]Base64 ←→ 图像
- 【JavaScript】未来事件的处理
- javascript 的 事件类型(事件)
- javascript 事件冒泡与取消冒泡
- 20条JavaScript代码简洁的写法
- 在javaScript中检测数据类型的几种方式
- 面试官最爱考的 javascript 预解析,你搞明白了吗?
- javascript事件和事件处理
- JavaScript中的作用域以及this变量
- JavaScript(JS) Math.PI
- JavaScript中错误正确处理方式,你用对了吗?
- JavaScript 变量
- 如何用Javascript捕获ActiveX对象的事件
- javascript event 事件解析 .
- Javascript如何监听页面刷新和关闭事件
- JavaScript之onXXXX事件和addEventListener的区别
- javascript事件监听与事件委托
- JavaScript中Object.prototype.toString方法的原理
- wtfjs:一个有趣和棘手的 JavaScript 示例列表
- Javascript中事件库的封装
- iOS 原生模块 给 Javascript(ReactNative) 发送事件 (通知监听)
- Javascript 库,封装了一些常用函数