Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在多个脚本文件中具有多个window.onload函数_Javascript_Onload - Fatal编程技术网

Javascript 在多个脚本文件中具有多个window.onload函数

Javascript 在多个脚本文件中具有多个window.onload函数,javascript,onload,Javascript,Onload,我正在建立一个网站,我有很多脚本,它们都包含在不同的文件中,其中一些是onload函数。我知道如何使用一个函数来运行它们。但是,这对于多个文件来说并不太好。我尝试使用onload.js文件: window.onload = function() { // Site wide funcs searchShow(); // Page specific if(getProducts && loadMore){ getProducts();

我正在建立一个网站,我有很多脚本,它们都包含在不同的文件中,其中一些是onload函数。我知道如何使用一个函数来运行它们。但是,这对于多个文件来说并不太好。我尝试使用onload.js文件:

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
)。

谢谢!)如何使用附加事件?