Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   проверка наличия jQuery (https://javascript.ru/forum/jquery/6929-proverka-nalichiya-jquery.html)

uncher4 06.01.2010 11:40

проверка наличия jQuery
 
Как можно узнать загружена ли jQuery и при необходимости загрузить ее?
Для того, что бы избежать повторной загрузки.

subzey 06.01.2010 13:29

if(!window.jQuery){
document.write('<script type="text/javascript" src="/js/lib/jquery.js"></script>')
}

Michael83 06.01.2010 13:29

проверка наличия jQuery
if (window.jQuery) {
  // ...
}

версию можно узнать window.jQuery.fn.jquery или $.fn.jquery

подключить можно так:
1. решение "в лоб"
document.write('<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>');
или то же самое но с ссылкой с вашего сайта

2. решение по-лучше: по сути тоже самое что в п.1 но динамически, через создание DOM-элемента script, подписки на onload в котором будет выполняться ваш jQuery код. (как это делать можно найти в статье на этом сайте). То есть здесь гарантия, что ваш код будет работать уже после того как jQuery загрузился. (хотя этой синхронизации можно и в первом варианте добиться, если интересно спрашивайте)

Также можно например отключить jQuery на странице, если он старой версии и загрузить новый, но тут надо осторожно т.к. черевато проблемами в работе сайта...

uncher4 06.01.2010 14:34

document.write('<script type="text/javascript" src="/js/lib/jquery.js"></script>')

Почему то это не работает. Судя по всему причина в </script>'

Т.е. если писать
<script type="text/javascript">

if(!window.jQuery)
document.write('<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>')
Этот текст будет выведен в браузер, т.к. тег script уже закрыт!
</script>

Michael83 06.01.2010 14:45

Цитата:

Сообщение от uncher4 (Сообщение 39789)
document.write('<script type="text/javascript" src="/js/lib/jquery.js"></script>')

Почему то это не работает. Судя по всему причина в </script>'


ну конечно надо заэскейпить, думал вы догадаетесь :)
document.write(unescape('<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">%3C/script%3E'));

uncher4 06.01.2010 15:00

Спасибо, теперь работает.


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