Загрузка по требованию. Как реализовать?
Собственно есть такая задача. Нужно проверить подключеня ли библиотека 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, время: 01:59. |