js window.onload 加载多个函数和追加函数详解
平时做项目 经常需要使用window.onload,
用法如下:
function func(){alert("this is window onload event!");return;}
window.onload=func;
或者如下:
window.onload=function(){alert("this is window onload event!");return;}
但window.onload 不能同时加载多个函数。
比如:
function t(){
alert("t")
}
function b(){
alert("b")
}
window.onload =t ;
window.onload =b ;
后面会把前面的覆盖,上面代码只会输出 b。
此时可用如下方法解决:
window.onload =function() { t(); b(); }
另一种解决方法如下:
function addLoadEvent(func) {
var oldonload = window.onload;//得到上一个onload事件的函数
if (typeof window.onload != 'function') {//判断类型是否为'function',注意typeof返回的是字符串
window.onload = func;
} else {
window.onload = function() {
oldonload();//调用之前覆盖的onload事件的函数---->由于我对js了解不多,这里我暂时理解为通过覆盖onload事件的函数来实现加载多个函数
func();//调用当前事件函数
}
}
}
//(完整示例)使用如下:
function t(){
alert("t")
}
function b(){
alert("b")
}
function c(){
alert("c")
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
//等价于 window.onload =function() { t(); b(); c() ;}
个人以为直接使用隐式函数(如:window.onload =function() { t(); b(); c() ;})更快捷,当然使用 addLoadEvent 更professional,各取所好吧!
JS window.onload追加函数:
<script>
if(window.attachEvent)//IE:如果浏览器中存在window.attachEvent函数则使用window.attachEvent函数,判断是否是IE还可以使用:if (document.all){//..}
window.attachEvent("onload",function() {alert("add method");});
else //FireFox
window.addEventListener("load",function() {alert("add method");},true);
</script>
运行,js中alert弹出消息,问题解决。
============相关资料================
attachEvent 将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。
Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
- jquery $(document).ready()和window.onload的区别浅析
- window.onload追加函数使用示例
- JS:window.onload的使用介绍
- jquery $(document).ready() 与window.onload的区别
- jquery中的$(document).ready()与window.onload的区别
- window.onload的页面加载技巧
- jquery中的$(document).ready()使用小结
- jquery的$(document).ready()和onload的加载顺序
- window.onload与$(document).ready()的区别分析
相关文章
一文详解JSON.parse和JSON.stringify的用法
Json.stringify()和toString()两者虽然都可以讲目标值转为字符串,但是还是有本质区别的,下面这篇文章主要给大家介绍了关于JSON.parse和JSON.stringify用法的相关资料,需要的朋友可以参考下2023-01-01基于el-table和el-pagination实现数据的分页效果流程详解
本文主要介绍了基于el-table和el-pagination实现数据的分页效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-11-11Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
这篇文章主要介绍了Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统的相关资料,需要的朋友可以参考下2016-05-05
最新评论