0

クライアントの Web サイトのファイル用にこのスクリプトを作成しました。core.jsそのファイルからいくつかの JavaScript ライブラリを動的にロードしたいと考えていcore.jsます。ただし、javascript ライブラリでは、ライブラリ オブジェクトを呼び出す前にライブラリ オブジェクトを定義する必要があるため、最初にそのライブラリをロードしてから残りのスクリプトを使用する必要があります。したがって、ファイルを動的にロードするためのこの非常に単純なスクリプトがありますが、ファイルよりも先に優先的にロードする方法があるかどうかを知りたいcore.jsです。現在のスクリプトは次のとおりです。

(function() {
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", "http://modernizr.com/downloads/modernizr-latest.js");
    if(typeof script != "undefined") {
        document.getElementsByTagName("head")[0].appendChild( script );
    }
})();

デバッガーには、次のように表示されます。

もちろんコアファイルより先に動的ファイルをロードするのですが、modernizrファイルをロードするドキュメントの行を指定する方法はあるのでしょうか?そうしないと、ロードしたのに Modernizr を使用できません。

もちろん、jQuery もロードしたいので、jQuery は使用できません。

4

1 に答える 1

1

loadイベントリスナーを使用して、動的にロードされるJavaScriptリソース(または、さらに言えば、画像、iframe、ビデオなどの任意のリソース)のロードに応答できます。ここでそれを行う最も簡単な方法は次のとおりです。

(function() {
    var script = document.createElement("script");
    ...
    script.onload = function() {
        // this will run later, when the script loads
        // in this function you can safely use Modernizr
    }
})();
于 2013-02-04T20:17:28.677 に答える