70

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

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

4

5 に答える 5

114

使用できます

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

ページが読み込まれるまで待機します。$(document).ready()DOMがロードされるまで待機します。

プレーンJSの場合:

window.addEventListener('load', function() {
    // your code here
})
于 2012-06-29T07:59:04.157 に答える
37

ロード後にコードを使用.getScript()して実行できます。

 $.getScript("my_lovely_script.js", function(){

    alert("Script loaded and executed.");
    // here you can use anything you defined in the loaded script

 });

ここでより良い説明を見ることができます: How do I include a JavaScript file in another JavaScript file?

于 2012-06-29T08:04:43.690 に答える
29

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

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

これについての素晴らしい記事:http://davidwalsh.name/script-defer

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

deferとasyncを使用したJSのロードに関するもう1つの優れた記事:https ://flaviocopes.com/javascript-async-defer/

于 2012-06-29T07:58:01.660 に答える