Спасибо ... но jQuery не вариант.

держиваю устаревшее приложение javascript, компоненты которого разделены на 4 файла JS.

Это «Default.aspx», «set1.aspx», «set2.aspx» и «set3.aspx». Страницы ASPX записывают сжатый JS из нескольких (совершенно разных) исходных файлов, принадлежащих их соответствующему набору, и устанавливают заголовок типа контента «text / javascript».

Приложение вызывается путем добавления ссылки на первый набор и создания объекта основного входа.

<script src="/app/default.aspx" type="text/javascript"></script>

<script type="text/javascript>

    var ax;  

    // <body onload="OnLoad()">
    function OnLoad() {
        ax = new MyApp(document.getElementById("axTargetDiv"));
    }

</script>

В конце первого набора скриптов (default.aspx) следующийточный код:

function Script(src) {
    document.write('<script src="' + src + '" type="text/javascript"></script>');
}

Script("set1.aspx?v=" + Settings.Version);

Который загружает второй набор скриптов (set1.aspx). И это работает без каких-либо ошибок во всех основных браузерах (IE6-8 Firefox Safari Opera Chrome).

Однако, поскольку я некоторое время работал над этим сценарием, я хотел бы упростить вызовы функций во многих местах и ​​по ошибке вставил указанную выше функцию Script, что привело бы к следующему коду:

document.write('<script src="set1.aspx?v=' + Settings.Version + '" type="text/javascript"></script>');

Который при тестировании с тестовой страницей теперь выдает следующую ошибку во всех браузерах:

MyApp is not defined.

Это происходит на линии:ax = new MyApp(... как отладчик Visual Studio JSа также Firebug сообщает об этом.

Я пробовал разные методы в первых 4 ответах на этот вопрос, но безрезультатно. Единственное, что позволит MyApp успешно загружаться, - это только вставив фактический код «add script» в функцию (т.е.document.write('script') линия):

Если я поставлюdocument.write строка внутри функции, это работает, в противном случае это не так. Что происходит?

Разделение и / или экранирование текста скрипта не работает.

Ответы на вопрос(4)

Ваш ответ на вопрос