JSファイルを自分でロードし、複数のファイルをサポートし、IEと互換性がありません
コードコピーは次のとおりです。
/**
* JSファイルのロード
* @param {string ||配列} url jsパス
* @param {function} fnロード後のコールバック
* @return {オブジェクト}ゲームオブジェクト
* @例
* getScript( "url.js"、fn)
* getScript(["url-1.js"、 "url-2.js"]、fn)
*/
game.getScript =(function(){
var cache = {}; // URLは内部的にキャッシュされており、次回はリクエストは必要ありません
return function(url、fn){
if( "string" === typeof(url)){
url = [url]; //配列でない場合は、セットを持参してください
};
var i = 0、//変更
OK = 0、//正常にロードされるJSの数
len = url.length、//合計でいくつのjsがありますか
head = document.getElementsByTagname( "head")[0]、
js、_url、
create = function(url){// jsを作成します
js = document.createelement( "script");
js.type = "text/javascript";
js.src = url;
head.AppendChild(JS);
JSを返します。
};
for(; i <len;){
if(cache [encodeuricomponent((_ url = url [i ++]))]){//ロードされている場合
(++ ok> = len && fn)&& fn(); //すべてのjsがロードされている場合、コールバックを実行します
続く;
}
キャッシュ[encodeuricomponent(_url)] =!0; //キャッシュを設定します
js = create(_url); // create js
fn &&(js.onload = function(){
if(++ ok> = len){//すべてのjsがロードされている場合、コールバックを実行します
fn();
}
});
};
head = js = _url = create = null;
これを返します。
}
})();