Javascript 在2个单独的.js文件中加载2个window.onload,仅加载1个函数

Javascript 在2个单独的.js文件中加载2个window.onload,仅加载1个函数,javascript,conflicting-libraries,Javascript,Conflicting Libraries,我有两个外部JavaScript文件,它们都通过window.onload调用函数。文件冲突,因此只有第二个js文件在工作 如何修复窗口。onload使这两个函数都能工作?我应该在HTML文件中这样做,还是可以在js文件中修复它 HTML标题为: <link type="text/css" rel="stylesheet" href="house.css" /> <style type="text/css"></style> <script type="

我有两个外部JavaScript文件,它们都通过window.onload调用函数。文件冲突,因此只有第二个js文件在工作

如何修复窗口。onload使这两个函数都能工作?我应该在HTML文件中这样做,还是可以在js文件中修复它

HTML标题为:

<link type="text/css" rel="stylesheet" href="house.css" />
<style type="text/css"></style>
<script type="text/javascript" src="slideshow_library.js"></script>
<script type="text/javascript" src="slideshow.js"></script>
<script type="text/javascript" src="house.js"></script>
第二个window.onload位于2个js文件中:

slideshow.js:

var slideShow;

window.onload = function (slideShow) {
    var params = {
        //blahblahblah lots of code
    }
}
幻灯片放映_library.js:

var $ = function(id) { 
    return document.getElementById(id); 
}

var SlideShow = function( params ){
    //blahblah blah even more code
} 
SlideShow.prototype.displayImage = function(){
    //blahblah blah even more code
}
SlideShow.prototype.displayNextImage = function(){
    //blahblah blah even more code
}
SlideShow.prototype.displayPreviousImage = function(){
    //blahblah blah even more code
}
SlideShow.prototype.togglePlay = function(){
    //blahblah blah even more code 
}

如果您被允许/熟悉使用JQuery,那么应该按照如下方式进行:

$(window).on('load', function() {
    //<-- do the rest here..
});
last.js


不要使用旧的
窗口。onload
事件模型。正如您所注意到的那样,这不是很灵活,而且不再需要浏览器支持

jQuery使这变得容易;将每个JS文件中的
window.onload=function
更改为
$(function)


纯JS解决方案:将其更改为
window.addEventListener('load',function)

如果要组合这两个javascript文件,该怎么做?我在1个文件上有一个onload,但在另一个文件中没有。(我想捆绑我所有的javascript文件)@ganders:如果一个文件是用onload包装的,而另一个不是,那么你可以把这两个文件连接起来。
$(window).on('load', function() {
    //<-- do the rest here..
});
(function(window, document) {
    var t = setInterval(function() {
        if('complete' === document.readyState) {
            clearInterval(t);
            alert('first js loaded ...');
        }
    }, 10);
})(window, document);
(function(window, document) {
    var t = setInterval(function() {
        if('complete' === document.readyState) {
            clearInterval(t);
            alert('last js loaded ...');
        }
    }, 10);
})(window, document);