原生js中如果有多个onload事件解决方案
2024-08-31 22:09:54
在一个页面中有两个JavaScript 分别都用到了window.onload
一个是:window.onload=func1,另一个是:window.onload=func2 这样就造成了一个JavaScript 运行不了。
方案一:
window.onload=function(){func1();func2();}
方案二:
用window.attachEvent和 window.addEventListener来解决问题了
window.addEventListener("load",调用函数名,false);//对于FireFox
window.attachEvent("onload",调用函数名)//对于IE
方案三
function addLoadEvent(func){
var oldonload = window.onload; //把现在有window.onload事件处理函数的值存入变量oldonload。
if(typeof window.onload != 'function'){ //如果这个处理函数还没有绑定任何函数,就像平时那样把新函数添加给它
window.onload = func;
}else{ //如果在这个处理函数上已经绑定了一些函数。就把新函数追加到现有指令的末尾
window.onload = function(){
oldonload();
func();
}
} }
addLoadEvent(num1);
addLoadEvent(num2);
如果有人接下来的js写了一个加载事件:
window.onload = function(){ console.log('最后再来个页面加载函数')}
结果妥妥的被覆盖了,只会执行最后一个window.load的内容,因此方案三不可取
推荐使用现代浏览器事件绑定 方案二。
最新文章
- CentOS 6.5移除openJDK及JDK安装环境变量配置及JDK版本切换
- 图片预加载和AJAX的图片预加载
- hihocoder [Offer收割]编程练习赛4
- WPF中Dispatcher未捕获异常之处理
- hadoop问题锦集(一)-搭建集群环境时的常见问题
- css去掉默认的下拉,实现用户自定义的下拉列表
- DNA比对
- sublime text 2相关
- C#时间格式之GMT时间的格式
- ERP免费模拟上线
- 【模板】HDU--1233 畅通工程
- bzoj3168 钙铁锌硒维生素 (矩阵求逆+二分图最小字典序匹配)
- tensorboard 可视化网络运行过程
- 关于H5页面中生成图片的两种方式!
- PIL库的总结及运用
- ajax与axios
- HDU6341 Let Sudoku Rotate (杭电多校4J)
- 英语口语练习系列-C32-建筑-述说时间-暮秋独游曲江
- 【转】【Python】Python发送邮件(常见四种邮件内容)
- js Jquery字符UrlEncode 编码 C#(asp.net)解码 Server HttpUtility 区别 cookies存中文