为了账号安全,请及时绑定邮箱和手机立即绑定

window.onload被覆盖,怎么解决?

window.onload被覆盖,怎么解决?

守候你守候我 2018-11-15 18:18:47
window.onload = function(){      var para =document.createElement("p");      var info = "NodeName:";      info += para.nodeName;      info += "     NodeType:";      info += para.nodeType;      alert(info);  }      window.onload = function(){      var para = document.getElementById("testid");      var e = document.createElement("p");      var txt = document.createTextNode("hello zmz");      para.appendChild(e);      e.appendChild(txt);      }  只执行了第二个window.onload,但是我想让两个window.onload都执行。该怎么处理?
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

我们都知道onload事件只能执行一次,所以假设你要运行两个onload时候执行的函数,最后只能执行后一个onload事件的函数,那么我们如何执行多个onload事件的函数呢,
形式如下:

window.onload = function(){

num1();

num2();

}

所以,我们就顶一个函数addLoadEvent(func),它只接受参数,就是在页面加载完毕时执行的函数的名字

function addLoadEvent(func){  

    var oldonload = window.onload; //把现在有window.onload事件处理函数的值存入变量oldonload。  

    if(typeof window.onload != 'function'){ //如果这个处理函数还没有绑定任何函数,就像平时那样把新函数添加给它  

        window.onload = func;  

    }else{ //如果在这个处理函数上已经绑定了一些函数。就把新函数追加到现有指令的末尾  

        window.onload = function(){  

            oldonload();  

            func();  

        }  

    }  

  

}  

调用:

addLoadEvent(num1);

addLoadEvent(num2);


查看完整回答
反对 回复 2018-12-24
  • 1 回答
  • 0 关注
  • 436 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号