2012-06-29 4 views
36

マスターページの下部にいくつかのJavaScriptファイルがロードされています。しかし、他のスクリプトがロードされる前にJavaScriptを実行する必要があるという状況があります。すべてのJavaScriptファイルがロードされるまで待ってから、JavaScriptコードを実行できますか?javascriptコードを実行する前に、すべてのjavascriptファイルがロードされるまで待つことはできますか?

これは$(document).ready()だと思いましたが、それは分かりません。もちろん、スクリプトファイルを下から上に移動することはできますが、私が望むことが可能かどうかは疑問です。

+0

$.getScript("my_lovely_script.js", function(){ alert("Script loaded and executed."); // here you can use anything you defined in the loaded script }); 

あなたはここで、より良い説明を見ることができますあなた自身のスクリプトを実行した後にそれを行う。 –

+1

他のスクリプトがロードされる前にX *を実行したいと同時に、すべてのスクリプト*がロードされるまで待つことを望んでいると同時に、あなたが望むものは何もないと思います。どちらですか?あなたが実行したいXの性質は何ですか? –

+0

@Damien_The_Unbeliever TGoより明確にする:すべてのjavascriptファイルがロードされた後にjavascriptを実行したい。 – Martijn

答えて

53

あなたは、ページがロードされるまで待機します

$(window).on('load', function() { 
    // your code here 
}); 

を使用することができます。 DOMは、あなたが.getScript()を使用して、それがロードされた後、あなたのコードを実行することができます

+1

ここではより良い説明です。http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/ – Eruant

+0

ページコンテンツを生成する前に、動的にロードされたスクリプトの読み込みが完了するまで待つ必要があったアプリケーションでうまく動作しました。 +1 – Roberto

18

<script>defer属性を使用できます。これは、ページの解析が完了したときにスクリプトが実行されるように指定します。これについて

<script defer src="path/to/yourscript.js"> 

素晴らしい記事:http://davidwalsh.name/script-defer

ブラウザのサポートはかなり良いようだ:http://caniuse.com/#search=defer

+1

他のすべてのJSファイルが少なくともFirefoxでは実行されるのを待っているようではありません。 – Rolf

27

をロードされるまで$(document).ready()待機:あなたは `script`ローダーを使用することができますHow do I include a JavaScript file in another JavaScript file?

+8

jqueryではなく標準のjavascript関数が必要な場合。コードはどうですか? –

+0

これはファイルをキャッシュしないので、毎回ダウンロードすることに注意してください。ドキュメントは$ .ajaxSetupまたは$ .ajaxを参照してキャッシュを有効にします。 – JanErikGunnar

関連する問題