Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Загрузка дополнительного js кода с сервера (https://javascript.ru/forum/misc/2208-zagruzka-dopolnitelnogo-js-koda-s-servera.html)

Anonymous2008 19.11.2008 15:09

Загрузка дополнительного js кода с сервера
 
Здравствуйте!
Никак не могу найти функцию в js, которые бы могла подгрузить js код с другого сервера, и чтобы только после этого исполнился весь код.
Вот такой код не подходит, т.к. сначала выполниться js код на загружаемой странице, а только потом выполниться script.js
Код:

<script type="text/javascript" language="JavaScript">
<!--
document.writeln("<script src=\"http://server.com/script.js\" type=\"text/javascript\"></script>");
//-->
</script>

А мне нужно, чтобы код, после того как подгрузится дополнительный код с другого сервера, был как бы общее целое!
Был бы благодарен, если бы подкинули несколько вариантов функций, я бы выбрал нужную.

Kolyaj 19.11.2008 15:49

Синхронно не получится (точнее получится в Опере, и то за все версии не ручаюсь). Можно периодически проверять на существование какой-либо переменной, описанной во внешнем файле.

Anonymous2008 19.11.2008 19:19

Спасибо!
Ну хорошо, пусть не синхронно, а какие функции есть для подгрузки js кода, чтобы не через document.writeln?

Kolyaj 19.11.2008 20:28

function include_js(file) {
    var html_doc = document.getElementsByTagName('head')[0];
    js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
    html_doc.appendChild(js);
}

twolf 20.11.2008 12:17

может я чего не понимаю... а почему нельзя сделать так
<script type="text/javascript" src="http://any.server/any.js"></script>
<script type="text/javascript" src="main.js"></script>

Dmitry A. Soshnikov 20.11.2008 12:33

twolf, имеется в виду динамическая подгрузка в рантайме (возможно, в зависимости от изменившихся условий), когда заранее не известно, понадобится этот модуль или нет. Это, так называемая, lazy initialization ("ленивая" (или поздняя) инициализация), когда компоненты подгружаются по мере надобности.


Часовой пояс GMT +3, время: 15:09.