js window.onload 加载多个函数和追加函数详解

前端技术 2023/09/06 JavaScript

平时做项目 经常需要使用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() ;}

本文地址:https://www.stayed.cn/item/16951

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。