Загрузка по требованию. Как реализовать?
Собственно есть такая задача. Нужно проверить подключеня ли библиотека Jquery и если нет, то подключить.
Пытаюсь проверить таким образом
if (typeof jQuery === "undefined") {
var s = document.createElement("script");
s.src = "'.$mosConfig_live_site.'/components/com_с/ajax/jquery.latest.min.js";
document.getElementsByTagName("head")[0].appendChild(s);
//doc.body.appendChild(s);
}
jQuery(function($) {
alert("Testing");
});
т.е. проверка срабатывает, но вот никак не хочет создавать script и подключать его в head. В чем проблема и где грабли?! |
Если jQuery не подключен, то typeof jQuery вызовет ошибку, так как переменная не определена. Проверяйте window.jQuery. И подключаемый скрипт начнет загружаться асинхронно, поэтому нельзя сразуже в коде использовать jQuery, нужно дождаться загрузки скрипта.
|
Цитата:
UPD Viper, посмотрите, как реализовано выполнение скриптов в самом jQuery, и сделайте так же. |
Цитата:
Цитата:
var head = document.getElementsByTagName("head")[0] || document.documentElement,
script = document.createElement("script");
script.type = "text/javascript";
script.src = "'.$mosConfig_live_site.'/components/com_c/ajax/jquery.latest.min.js";
head.insertBefore( script, head.firstChild );
результата 0. |
Viper,
вы пропустили главную реплику Цитата:
|
такс... ну совсем темный лес...
Kolyaj уже наступил на граблю... _http://remysharp.com/2007/11/14/on-demand-script-loading/ нашел вроде бы то что нужно, но опять же не пашет... :-E Может кто-нить толково разъяснить на пальцах. Ну или код чтоли привести если несложно :help: ЗЫ! В js новичек. |
|
Цитата:
|
Цитата:
к тому же попробовал подключить библиотеку из стороннего места, понял что нужно ещё больше кода переписывать. ЗЫ! Решение в поиске. Простое! |
Я вам не предлагаю брать именно это решение. Это пример реализации, и того, что в динамической подгрузке все не так просто. События загрузки скрипта нет, поэтому или вы добавляете в подгружаемые файлы служебный код, или по таймауту проверяете появление каких-либо объектов. Оба варианта плохие.
Цитата:
|
| Часовой пояс GMT +3, время: 14:31. |