JavaScript динамическое подключение скриптов. Как динамически подключить javascript?
Динамическая подрузка javascript скриптов. Подключение скриптов на javascript.
Чтобы динамически подключать скрипты, нужно заюзать библиотеку scriptjava, которая упрощает программирование на javascript и избавляет от лишних проблем.
На чистом яваскрипте реализовать динамическое подключение скриптов можно, но это вызовет кучу проблем.
Например если нам потребуется подключить скрипт и запустить из него функцию, то произойдет ошибка потому что мы не знаем сколько по времени будет грузится скрипт, а пока он грузится скрипт вызовет функцию которая еще не загрузилась что приведет к ошибке.
ScriptJava работает во всех браузерах и выполняет функции только после полной загрузки скриптов избавляя нас от лишней мароки и ошибок.
Подключите к своему сайту перед тегом ScriptJava фреймворк, добавив вот такой код:
<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>
Далее пишем функцию динамического подключения кода:
<script type="text/javascript">
function GetScript() {
//Подключаю внешний скрипт и запускаю из него метод
$$i({
create:'script',
attribute: {
'type':'text/javascript',
'src':'http://nagon.net/js/NRMSLib.js'//адрес на подключаемый скрипт
},
insert:$$().body,
onready:function() {
modules.sound.start();//этот метод запускается уже из подключенного скрипта
}
});
}
</script>
В любом месте сайта, когда нужно динамически подключить скрипт нужно вызвать функцию
GetScript();
Вот и все!
Но что делать когда нужно динамически подключать скрипты сразу после загрузки сайта?
Ведь опять не зная когда загрузится полностью сайт мы не можем динамически подключать внешний скрипт.
На самом деле определять загрузку сайта может scriptjava, но не то как это определяет метод onload, а совсем по другому.
Сайт может еще не полностью загрузится, а скриптджава сама определит когда можно выполнять код.
Дописываю вышепоказанный код, для его запуска сразу после загрузки сайта:
<script type="text/javascript">
//выполнение кода только после загрузки документа
$$r(function() {
//Подключаю внешний скрипт и запускаю из него метод
$$i({
create:'script',
attribute: {
'type':'text/javascript',
'src':'http://nagon.net/js/NRMSLib.js'//адрес на подключаемый скрипт
},
insert:$$().body,
onready:function() {
modules.sound.start();//этот метод запускается уже из подключенного скрипта
}
});
});
</script>
Выше написанный код нельзя помещать в функцию.
Он может запускаться только во время загрузки сайта т.е. как есть.
|