Мне нужно загрузить некоторые js файлы динамически и последовательно (т.е. второй сценарий загружается после завершения загрузки первого, третий - после второго и так далее).
Вопрос : как определить, когда скрипт был загружен? У меня возникли проблемы с событием onload - оно не срабатывает в IE8. Прочитав это , я попытался подписаться на 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 (например, у клиента старая версия):)?