лучший способ динамической загрузки скрипта

Мне нужно загрузить некоторые 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 (например, у клиента старая версия):)?

6
задан 2xMax 18 August 2011 в 17:16
поделиться