window.onload绑定多个事件 —— 两种解决方案

前言

      有些函数,必须在网页加载完毕后执行。比如:涉及DOM操作的。

      网页加载完毕时会触发一个onload事件,将函数绑定到这个事件上即可。

      window.onload = myFunction;

      问题来了:如果需要同时绑定多个事件,该如何处理呢?有两种解决方法

方案一

      创建一个匿名函数,来容纳需要绑定的多个事件,再讲这个匿名函数绑定到onload事件上      

1 window.onload = function(){
2    firstFunction();
3    secondFunction();
4    ...... 
5 }

方案二

     由Simon Willsion编写的addLoadEvent函数:     

 1 function addEventLoad(func){
 2    var oldOnload = window.onload;
 3    if(typeof window.onload != 'function'){
 4        window.onload = func;
 5    }else{
 6         window.onload = function(){
 7              oldOnload();
 8              func();
 9         }
10    } 
12 }
  1. 将现有的window.onload事件处理函数的值存入变量oldOnload
  2. 如果这个处理函数上还没有绑定函数,则和那样把新函数绑定给它。
  3. 如果已经绑定了函数,则把新的函数追加到指令的末尾。

     调用方法:

     addEventLoad(firstFuction);

     addEventLoad(secondFuction);

 

原文地址:https://www.cnblogs.com/lanleiming/p/5489985.html