js共享onload事件

  问题:通过js进行事件绑定,必须在HTML文档加载完成后再执行js脚本,否则可能因DOM不完整导致无法完成预计的效果,但对于不同的需求如何选用最佳的实现方式呢,这里做了整理,可以做参考。

  一、对于小型的网页,可以直接用下面的代码绑定即可:

window.onload = func;

  二、在复杂的一些可以用:

window.onload = function(){
    func1();
    func2();
    func3();
}

  在需要绑定的函数不太多的场合,这是最简单的解决方案。

  三、对于复杂场合,则需要用到addLoadEvent函数来完成该任务了。不多说,先上代码:

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

  通过阅读代码,可以得出该函数完成的操作有:

    1、把现有的window.onload事件处理函数的值存入oldonload;

    2、如果这个函数还未绑定任何函数,就像“一”那样添加;

    2、如果这个函数上已经绑定了一些函数,则把新函数追加到现有指令的末尾。

  可以看出,它把在网页加载完成时需要执行的函数创建成了一个队列,需要的时候直接加入队列即可。至于如何调用该函数进行绑定,在可以在你实现完新函数后,在后面跟着调用一下就ok,如:

addLoadEvent(新函数名);

  最后,addLoadEvent函数有Simon Willison编写,详见http://simon.incutio.com

原文地址:https://www.cnblogs.com/ictlight-moving-on-1/p/5629117.html