Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.10.2009, 16:19
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

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

В чем проблема и где грабли?!
Ответить с цитированием
  #2 (permalink)  
Старый 15.10.2009, 16:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Если jQuery не подключен, то typeof jQuery вызовет ошибку, так как переменная не определена. Проверяйте window.jQuery. И подключаемый скрипт начнет загружаться асинхронно, поэтому нельзя сразуже в коде использовать jQuery, нужно дождаться загрузки скрипта.
Ответить с цитированием
  #3 (permalink)  
Старый 15.10.2009, 16:32
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от Octane Посмотреть сообщение
Если jQuery не подключен, то typeof jQuery вызовет ошибку, так как переменная не определена.
Да ну?

UPD
Viper, посмотрите, как реализовано выполнение скриптов в самом jQuery, и сделайте так же.
Ответить с цитированием
  #4 (permalink)  
Старый 15.10.2009, 16:57
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

Сообщение от Octane Посмотреть сообщение
Если jQuery не подключен, то typeof jQuery вызовет ошибку, так как переменная не определена. Проверяйте window.jQuery. И подключаемый скрипт начнет загружаться асинхронно, поэтому нельзя сразуже в коде использовать jQuery, нужно дождаться загрузки скрипта.
отнюдь. как раз таки проверка и работает. но вот сама загрузка нет.

Сообщение от e1f Посмотреть сообщение
Да ну?

UPD
Viper, посмотрите, как реализовано выполнение скриптов в самом jQuery, и сделайте так же.
собственно взято из JQ

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.
Ответить с цитированием
  #5 (permalink)  
Старый 15.10.2009, 17:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Viper,
вы пропустили главную реплику
Сообщение от Octane
И подключаемый скрипт начнет загружаться асинхронно, поэтому нельзя сразуже в коде использовать jQuery, нужно дождаться загрузки скрипта.
Ответить с цитированием
  #6 (permalink)  
Старый 15.10.2009, 17:23
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

такс... ну совсем темный лес...

Kolyaj уже наступил на граблю...

_http://remysharp.com/2007/11/14/on-demand-script-loading/
нашел вроде бы то что нужно, но опять же не пашет...

Может кто-нить толково разъяснить на пальцах. Ну или код чтоли привести если несложно

ЗЫ! В js новичек.
Ответить с цитированием
  #7 (permalink)  
Старый 15.10.2009, 17:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://jsx.ru/Texts/ModulesInJS/index.html
Ответить с цитированием
  #8 (permalink)  
Старый 15.10.2009, 18:04
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от e1f
Сообщение от Octane Посмотреть сообщение
Если jQuery не подключен, то typeof jQuery вызовет ошибку, так как переменная не определена.
Да ну?
fail… был уверен, что так вроде в стандарте про это ничего не сказано.
Ответить с цитированием
  #9 (permalink)  
Старый 16.10.2009, 13:41
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

Сообщение от Kolyaj Посмотреть сообщение
http://jsx.ru/Texts/ModulesInJS/index.html
оно конечно хорошо. но загружать ещё 80кб кода слишком уж накладно. к тому же 90% того функционала мне не нужно. и уж простите через жопу загружать плагины для JQ(пусть и валидно)...
к тому же попробовал подключить библиотеку из стороннего места, понял что нужно ещё больше кода переписывать.

ЗЫ! Решение в поиске. Простое!
Ответить с цитированием
  #10 (permalink)  
Старый 16.10.2009, 13:50
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я вам не предлагаю брать именно это решение. Это пример реализации, и того, что в динамической подгрузке все не так просто. События загрузки скрипта нет, поэтому или вы добавляете в подгружаемые файлы служебный код, или по таймауту проверяете появление каких-либо объектов. Оба варианта плохие.

Сообщение от Viper
Решение в поиске.
Там все решения есть, только им пользоваться никто не хочет/не умеет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как реализовать на jQuery скроллинг фоток sensor jQuery 8 31.05.2010 18:51
Как правильно реализовать на Java-Script trio Общие вопросы Javascript 2 06.10.2009 19:11
Как реализовать? Fliand Элементы интерфейса 4 22.08.2009 19:47
Динамически увеличивающиеся изображения: как реализовать? cforest Events/DOM/Window 6 24.06.2009 17:16
Как реализовать... midzus jQuery 2 31.10.2008 14:42