日期:2014-05-16  浏览次数:20390 次

请问如何解决一个页面中两个onload问题
我在页面中include了导航栏页面,导航栏页面body中有一个onload,而我原页面也需要使用onload,这就导致只实现了导航栏中onload调用的js后一个onload无法工作,该如何解决?
JavaScript

------解决方案--------------------
window.onload = function(){
    alert(1)
}
if(window.onload){
    var old = window.onload;
}
window.onload = function(){
    if(typeof old === 'function') old();
    alert(2)
}

或者用addEventListener(FF)跟attachEvent(IE)
if(window.addEventListener){
window.addEventListener('load',function(){
    alert(1)
},false)
window.addEventListener('load',function(){
    alert(2)
},false);
}else{
window.attachEvent('onload',function(){
    alert(1)
})
window.attachEvent('onload',function(){
    alert(2)
});
}

------解决方案--------------------
dom下的那个事件绑定,可以多次绑定同一个事件。
function addEvent(node,type,listener) {
//使用前面的方法检查兼容性以保证平稳退化
if(node.addEventListener){
//W3C方法--FF
node.addEventListener(type,listener,false);
return true;
}else if(node.attachEvent)
{
//MSIE方法--IE
node['e'+type+listener] = listener;
node[type+listener] = function(){
node['e'+type+listener](window.event);
}
node.attachEvent('on'+type,node[type+listener]);
return true;
}
return false;
}

调用方法。node是你需要绑定的到的目标元素,第二个参数是事件,不需要加'on'前缀,第三个参数是事件处理函数
addEvent(node,"click",func);

试试看!