3

window.onloadを介して関数を呼び出す 2 つの外部 JavaScript ファイルがあります。ファイルが競合するため、2 番目の js ファイルのみが機能しています。

両方の機能が機能するようにwindow.onloadを修正するにはどうすればよいですか? HTMLファイルでこれを行うべきですか、それともjsファイルの1つで修正できますか?

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>

house.js:

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

var calculateClick = function() {
    console.log("click, calculate click is running");
    //blahblahblah, lots of code
}

window.onload = function(rental){
    console.log("onload, javascript is running");
    console.log(rental);

    $("calculate").onclick = calculateClick;
}

2 番目の window.onload は 2 つの js ファイルにあります。

スライドショー.js:

var slideShow;

window.onload = function (slideShow) {
    var params = {
        //blahblahblah lots of code
    }
}

slideshow_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 
}
4

2 に答える 2

0

JQueryの使用が許可されている/慣れている場合は、次のように行われます。

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

まだ純粋な js を探している場合は、次の例を試してwindow.onloadくださいdocument.readyState

first.js

(function(window, document) {
    var t = setInterval(function() {
        if('complete' === document.readyState) {
            clearInterval(t);
            alert('first js loaded ...');
        }
    }, 10);
})(window, document);

last.js

(function(window, document) {
    var t = setInterval(function() {
        if('complete' === document.readyState) {
            clearInterval(t);
            alert('last js loaded ...');
        }
    }, 10);
})(window, document);

ここで git リポジトリを見つけます

于 2014-07-20T03:51:42.337 に答える