javascript - window.onload被覆盖,怎么解决?
本文介绍了javascript - window.onload被覆盖,怎么解决?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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都执行。该怎么处理?
解决方案
我们都知道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);
这篇关于javascript - window.onload被覆盖,怎么解决?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文