직접 JS 파일을로드하고 여러 파일을 지원하며 IE와 호환되지 않습니다.
코드 사본은 다음과 같습니다.
/**
* JS 파일로드
* @param {문자열 || Array} URL JS 경로
* @param {function} fn 콜백을로드 후
* @return {Object} 게임 객체
* @예
* getScript ( "url.js", fn)
* getScript ([ "url-1.js", "url-2.js"], fn)
*/
game.getScript = (function () {
var cache = {}; // URL이 내부적으로 캐시되고 다음에 요청이 필요하지 않습니다.
반환 함수 (url, fn) {
if ( "String"=== typeof (url)) {
url = [url]; // 배열이 아닌 경우 세트를 가져옵니다
};
var i = 0, // 변경
OK = 0, // 얼마나 많은 JS가 성공적으로로드되었는지
len = url.length, // 총 얼마나 많은 J가 있습니까?
head = document.getElementsByTagName ( "Head") [0],
JS, _URL,
create = function (url) {// js를 작성하십시오
js = document.createelement ( "스크립트");
js.type = "텍스트/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); // js를 생성합니다
fn && (js.onload = function () {
if (++ ok> = len) {// 모든 js가로드 된 경우 콜백을 실행합니다.
fn ();
}
});
};
head = js = _url = create = null;
이것을 반환하십시오;
}
}) ();