Загрузка файлов JS самостоятельно поддерживает несколько файлов, несовместима с IE
Кода -копия выглядит следующим образом:
/**
* Загрузка файла JS
* @param {String || массив} url js path
* @param {function} fn обратный вызов после загрузки
* @return {Object} Game 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, // Изменение
ОК = 0, // Сколько JS загружается успешно
len = url.length, // Сколько JS в общей сложности
Head = document.getElementsBytagName ("head") [0],
JS, _URL,
create = function (url) {// create 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;
вернуть это;
}
}) ();