被引用的外部JS存在window.onload时,判断当前页面是否已存在window.onload,并进行相应处理

时间:2022-07-19 23:49:25
如果页面a.html引用了b.js,b.js里的方法需要在页面资源加载完成后执行,即在window.onload里执行;
这时如果a.html里使用了window.onload方法,b.js就不能重复调用这个方法了,
因为window.onload不能同时使用多个,否则后者会覆盖前者。
可以用如下方法解决这个问题,即当a.html中已经调用了widow.onload方法,b.js里需要使用widow.onload方法
的函数只需要添加在后面就行了,否则,b.js里新调用一次window.onload就行了。

function addLoadEvent(func) {
var oldonload = window.onload;

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

addLoadEvent(func);