加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

jswindow.onload加载多个函数和追加函数解析

发布时间:2023-09-15 14:52:00 所属栏目:教程 来源:
导读:平时做项目 经常需要使用window.onload,

用法如下:

function func(){alert("this is window onload event!");return;}

window.onload=func;

或者如下:

window.onload=function(){alert("this
平时做项目 经常需要使用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 就可以了。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章