Javascript 在多个脚本文件中具有多个window.onload函数
我正在建立一个网站,我有很多脚本,它们都包含在不同的文件中,其中一些是onload函数。我知道如何使用一个函数来运行它们。但是,这对于多个文件来说并不太好。我尝试使用onload.js文件:Javascript 在多个脚本文件中具有多个window.onload函数,javascript,onload,Javascript,Onload,我正在建立一个网站,我有很多脚本,它们都包含在不同的文件中,其中一些是onload函数。我知道如何使用一个函数来运行它们。但是,这对于多个文件来说并不太好。我尝试使用onload.js文件: window.onload = function() { // Site wide funcs searchShow(); // Page specific if(getProducts && loadMore){ getProducts();
window.onload = function() {
// Site wide funcs
searchShow();
// Page specific
if(getProducts && loadMore){
getProducts();
loadMore();
}
if(checkBox){
checkBox();
}
if(styleProduct) {
styleProduct();
}
}
在运行函数之前,它应该检查该函数是否存在于页面上。(有些文件在每个文件中引用,有些文件是站点范围的,在头文件中引用)
有谁能为所有这些已加载文件提供更好的选择吗?在脚本文件中,坚持使用
addEventListener
或attachEvent
,因为两者都允许对单个事件使用多个处理程序
编辑
由于这两个函数是特定于浏览器的,因此最好从某种包装开始:
function createEvent(objectTarget, eventName, eventHandler)
{
if (objectTarget.addEventListener)
objectTarget.addEventListener(eventName,eventHandler,false);
else if (objectTarget.attachEvent)
objectTarget.attachEvent('on'+eventName,genericHandler);
}
现在使用createEvent
将新处理程序附加到特定事件
createEvent(window, 'load', handler1);
createEvent(window, 'load', handler2);
...
请考虑到,浏览器之间的事件模型存在更严重的差异(例如,event
对象或target
与srcelelement
)。谢谢!)如何使用附加事件?