Не пойму, везде примеры с динамическим подключением скриптов типа такого:
var script = document.createElement('script');
script.src = "https://code.jquery.com/jquery.js";
document.documentElement.appendChild(script);
function afterLoad() {
alert( "Загрузка завершена: " + typeof(jQuery) );
}
script.onload = script.onerror = function() {
if (!this.executed) { // выполнится только один раз
this.executed = true;
afterLoad();
}
};
script.onreadystatechange = function() {
var self = this;
if (this.readyState == "complete" || this.readyState == "loaded") {
setTimeout(function() {
self.onload()
}, 0); // сохранить "this" для onload
}
};
Но у script нет ни onreadystatechange , ни readyState и как следствие функция выше не отработает как задумано.
И Второй вопрос хочу подключить несколько сриптов в цикле
var jsArr=['js1.js', 'js2.js'];
var script=[]
for (var jsFile in jsArr) {
var script[jsFile ] = document.createElement('script');
script[jsFile ].src = "/static/js/"+jsArr[jsFile];
document.body.appendChild(script[jsFile ]);
script[jsFile].onload = function() {
console.log(script[jsFile]); // оба раза покажет только последний файл
console.log(script);
};
script[jsFile].onerror = function() {
alert( "Ошибка: " + this.src );
};
}
И получается так что оба раза после загрузки скриптов console.log(script[jsFile]); показывает что отработала функция для последнего загруженного файла. Почему так ?