把多个JavaScript函数绑定到onload事件处理函数上

为了让函数只在页面加载完毕后才获得执行,咱们会把函数绑定到onload事件上:
window.onload = userFunction
但若是有两个函数:firstFunction() 和 secondFunction(),都想让它们在页面加载完毕后获得执行,该怎么办?若是这样:
     window.onload = firstFunciton;
     window.onload = secondFunction;
只有最后一个函数能被执行。由此可得:每一个事件处理函数只能绑定一条指令。
但咱们能够这样作:
     window.onload = function(){
          firstFunction();
          secondFunction();
     }
这是一个解决办法。
 
不过,还有一个更通的解决方案——额外编写一些代码,但好好处是,有了这些代码,把函数,无论它们有多少,绑定到window.onload事件上的工做就很是简明易行了。
这个函数的的名字是addLoadEvent,它是由Simon Willison编写的。它只有一个参数:打算在页面加载完毕时执行的函数的名字。
下面是addLoadEvent()函数将要完成的操做:
  1. 把现有的window.onload事件处理函数的值存入变量oldonload。
  2. 若是在这个处理函数上尚未绑定任何函数,就像平时那样把形函数添加给它。
  3. 若是在这个处理函数上已经绑定了一些函数,就把形函数追加到现有指令的末尾。
下面是addLoadEvent()函数的代码清单:
     function addLoadEvent(func){
          var oldonload = window.onload;
          if(typeof window.onload != 'function'){
               window.onload = func;
          }else{
               window.onload = function(){
                    oldonload();
                    func();
               }
          }
     }
 
这至关于为那些将在页面加载完毕时执行的函数建立了一个队列。若是想把刚才那两个函数添加到队列中去,只须要写出如下代码便可:
     addLoadEvent(firstFunction);
     addLoadEvent(secondFunction);
相关文章
相关标签/搜索