2016-11-14 13 views
0

上で実行されて、私は3つのJSファイルロード以下のhtml頭持っている:search.js、create.jsとmaps.jsを:つだけJSスクリプトは、ページのロード

<head> 
    <title>Simple Map</title> 
    <meta name="viewport" content="initial-scale=1.0"> 
    <meta charset="utf-8"> 
    <link rel="stylesheet" type="text/css" href="/maps.css" /> 
     <script 
       src="https://code.jquery.com/jquery-3.1.1.min.js" 
       integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
       crossorigin="anonymous"></script> 
    <script src="https://maps.googleapis.com/maps/api/js?key=<my-key>=initMap" 
    async defer></script> 
     <script src="/search.js"></script> 
     <script src="/create.js"></script> 
     <script src="/maps.js"></script> 

    </head> 

を私はまた、次のサーバー側を持っていますコード:

index.htmlがロードされると、クライアントは1つのJSスクリプト(各ファイルに 'script x loaded'を記録してテスト済み)を実行するように見えます。実行されたスクリプトは、常に最後にロードされたスクリプトです。 (つまり、<script src="/search.js"></script>が最後の場合、コンソールは「script search.js loaded」のみをログに記録します)。実行されるスクリプトは、常に期待どおりに動作します。他のスクリプトはすべてjsコンソールにロードされていますが、実行されません。ここに何が間違っているのか考えてみませんか?

EDIT:すべての3つのスクリプトが

window.onload = (function(){ 
    console.log('search.js loaded'); 

/* 
*event handling and DOM manipulation logic here 
*/ 
}); 
FIXED

のようなものを見て:それはおそらく、あなたのスクリプトでイベントハンドラを設定しているかに関係している$(document).ready(function(){...});

+3

を私はこの問題は、スクリプトの内容である疑いがあります。 – Quentin

+1

ブラウザの開発者ツールのネットワークタブを使用すると、スクリプトの内容が正しいことを確認できますか? –

+0

これは、キャッシュ関連のようではありません。 ptsはコンテンツを期待しています。 – user3549700

答えて

0

window.onload = (function(){...});を置き換えます。したがって、他のすべてのイベントハンドラはスクリプトの読み込み時に呼び出されません

のようなものを試してみてください。上記を使用して
window.addEventListener("onload", function(){ 
    console.log('I am loaded'); 
}); 

、あなたがこのような場合にはonloadイベントで同じイベントのためにリスニング複数のイベントハンドラを持つことができます。 を、私はこのことができます願っています。

+0

あなたは[addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)を意味していませんか? – feihcsim

+0

実際、訂正してくれてありがとう。私は半分眠っていたに違いない。 – Sean12

関連する問題