addLoadEvent共享onload事件

2017-12-18  本文已影响0人  迷人的洋葱葱

问题
如何实现在页面加载完毕时执行多个函数,且都把它们绑定到window.onload事件

1、方法一:
创建一个匿名函数来容纳这多个函数,然后把那个匿名函数绑定到onload事件上。如下所示:

window.onload=function(){
    firstfun();
    secondfun();
}

2、方法二:
创建一个可以动态添加函数到onload事件的函数。
思路:
①把现有的window.onload事件处理的函数存入变量oldonload.
②如果window.onload事件上没有绑定任何函数,将新函数fun直接绑定到window.onload事件上
③如果window.onload事件上已经绑定了一些函数,将一个匿名函数绑定到window.onload事件上。在匿名函数中执行oldonload,并在末尾追加新函数fun。

function addLoadEvent(fun){
    var oldonload=window.onload;
    if(typeof window.onload != 'function'){
        window.onload=fun;
    }else{
        window.onload=function(){
            oldonload();
            fun();
        }
    }
}

参考文献:
JavaScript DOM 编程艺术(第2版)

上一篇 下一篇

猜你喜欢

热点阅读