关于onload事件
为了让函数在网页加载完毕后立即执行,网页加载完毕后会出发一个onload事件,这个事件与window对象关联,必须把函数绑定到这个时间上,有两种解决方案:
1.常见解决方案:
先创建一个匿名函数来容纳函数,然后把匿名函数绑定到onload事件上;如下所示:
window.onload=function(){firstFunction();secondFunction();
}
2.弹性最佳解决方案—不管页面加载完毕时执行多少个函数,它都可以应付自如;这个函数名是addLoadEvent,由Simon Willison编写。只有一个参数:打算页面加载完毕时执行的函数的名字。
下面是addLoadEvent函数完成的操作:
- 把现有的window.onload事件处理函数的值存入变量oldonload;
- 如果这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它;
- 如果这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。
下面是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 DOM 编程艺术(第2版)》
关于onload事件相关推荐
- 加载多个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 ...
- 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 ...
- onload事件和ready方法的区别
部分内容转载自ready和onload的区别 $(document).ready()和window.onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在 具体的细节上$(docume ...
- html标签onload,支持onload事件的HTML标签有哪些
支持onload事件的HTML标签有:"body"."frame"."frameset"."iframe"." ...
- iframe的onload事件
很多时候,我们会需要改变一个iframe的地址(src属性),或者使用表单(form)的target在指定的iframe进行提交后,在 iframe加载完毕(onload)时立即响应某个操作,以提高W ...
- JS的onload事件
之前按照HTML规范在<head>中嵌套<script>,写JS脚本获取HTML元素并做操作,但有时会报错. 原因:报错 <- 元素为null <- 页面未加载完成 ...
最新文章
- 华为手机获取状态栏高度是错误的_华为后置指纹这么多功能,你不会还以为只能解锁和支付吧...
- bzoj 2152 聪明可可
- Linux学习之创建子进程
- 【收藏】spark中map与mapPartitions区别
- Java连接MySQL数据库 报错
- linux环境编程 学习,学习linux环境高级编程首先学习的是文件的操作。因为有.pdf...
- 2信号处理之:信号产生原因,进程处理信号行为,信号集处理函数,PCB的信号集,sigprocmask()和sigpending(),信号捕捉设定,sigaction,C标准库信号处理函数,可重入函数,
- PHP的Composer install、require、update
- tomcat(6)生命周期
- linux find 拷贝,通过find命令寻找文件并拷贝到一个指定目录方法详解
- 无线Hacking之D.O.S与AP欺骗
- Centos7下Confluence5.6.6安装
- 甘肃省计算机能力vf考试题库,计算机等级考试二级VF模拟试题十及答案解析
- 《Docker技术从入门到实践》第1,2章
- mysql函数大全之数字函数
- 20170330今日头条笔试题
- Java不停的gc_java – 我的应用程序不断运行Full GC!
- IEDA中maven设置远程仓库地址和maven Could not find artifact 问题解决
- 大拇指全程报导苹果发布会2014.9.9
- linux网络掉线频繁怎么设置,解决ssh登录的时候,没操作总是会自动掉线的设置办法,100%有效...
热门文章
- 【渝粤教育】电大中专Office办公软件 (15)作业 题库
- html怎么引用php文件,html页面怎么跟php文件连接
- 【大学生数学竞赛】公式大全(补充中)
- error: #109: expression preceding parentheses of apparent call must have (pointer-to-) function typ
- 保障出行安全|科力锐助力长沙黄花国际机场灾备建设
- azure云上 在线将oracle单实例扩展成oracle dataguard高可用集群的详细过程
- python虚拟环境中安装diango_安装Python虚拟环境和django
- 实验1的运行过程及心得体会
- JavaMail实现注册邮箱验证案例
- TPC/IP 协议头部说明