2 回答
TA贡献1780条经验 获得超4个赞
如果页面一个js里面有多个window.onload=匿名方法,那么实际上只有最后一个会被执行
如果window.onload 不是特别多,用一个匿名方法包裹需要调用的方法,这样也是可以的,即以下形式:
window.onload = function(){
firstFunction();
secondFunction();
}
但如果有多个js,都有 window.load,更进一步,可以用一个专门的 addEventLoad 函数,专门来绑定 onload 事件
function addLoadEvent(func) {
//把现有的 window.onload 事件处理函数的值存入变量
var oldOnload = window.onload;
if (typeof window.onload != "function") {
//如果这个处理函数还没有绑定任何函数,就像平时那样添加新函数
window.onload = func;
} else {
//如果处理函数已经绑定了一些函数,就把新函数添加到末尾
window.onload = function() {
oldOnload();
func();
}
}
}
这样,只需要确保 addLoadEvent 方法事先被声明,之后引入的js文件里的onload方法都可以改成:
addLoadEvent(functionA)
这样就能确保,在window.load事件触发的时候按照js文件 加载顺序 和 同一js文件里addLoadEvent 的顺序,逐一调用方法
添加回答
举报
