Мне нужно загружать некоторые js-файлы динамически и последовательно (то есть второй скрипт загружается после завершения загрузки первой, третьей после второй и т. Д.).
Вопрос: как определить, когда скрипт был загружен? У меня возникли проблемы с событием onload - оно не срабатывает в IE8. Прочитав this , я попытался подписаться на onreadystatechange и написал очень уродливый код для загрузки скрипта:
function loadScript(url, callback) {
var isLoaded = false;
var script = document.createElement('script');
script.onreadystatechange = function () {
if ((script.readyState == 'complete' || script.readyState == 'loaded') && !isLoaded) {
if (callback) callback();
}
};
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url);
document.head.appendChild(script);
};
Можете ли вы предложить лучшее кросс-браузерное решение без таких уловок?
UPD:
Спасибо за ответы. Что мне делать, если мне нужно также загрузить jquery.js (например, клиент имеет старую версию):)?