0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1912 Просмотров
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
Уважаемые пользователи!

Что делать, если jQuery подключается не однократно к сайту?
Стоит simpleForm2 и AJAX Header Rotator, и то то использует эту библиотеку, из за этого simpleForm2 при отправке письма переносит пользователя на пустую страницу!
Как избавится от данного глюка, может есть плагин, который следит и пресекает все это буйство модулей?

За ранее при много благодарен!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Как избавится от данного глюка, может есть плагин, который следит и пресекает все это буйство модулей?
такого плагина не будет.
Т.к. каждое расширение таскает свои библиотеки.
Если уверены что используются одинаковые версии и будет все работать на одной, то только лезть внутрь и отключать.
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
SmokerMan, как вы думаете, а вот такой метод поможет?:

1. Самый простой и безопасный:
Открываем саму библиотеку, и оборачиваем ее таким вот образом:

Код
 
// !
// Sometimes jQuery can be included more then ones,
// and after each next including
// all jquery-plugins removing automatically.
// That is why next check-code was set.
// This code initing jQuery
// just if it was not inited early.
if(window.jQuery == undefined) {
// здесь будет весь исходный код jQuery
//...
}
После этого можно переименовать имя файла, к примеру, на такое:
jquery-1.3.2.if-undefined.min.js во избежание случайного перетирания и подключать его. Хотя в этом случае придется изменить имя библиотеки во всех файлах где она подключается, а это не очень эффективно. К тому же в будущем может найтись человек, который не будет знать об этом фиксе или просто забудет о нем, и подключит библиотеку со стандартным именем.
Если же имя оставить стандартным, эта защита сработает везде автоматически.
Так что решать Вам.

Недостаток этого фикса тот, что библиотека может полностью подгружаться несколько раз. Хотя, если Вы не используете различные javascript-миксеры, оптимизацию яваскриптового кода путём склеивания, прочее, то, скорее всего, браузер просто повторно возьмёт эту библиотеку со своего кэша. Тем не менее есть второй, более красивый вариант:

2. Этот способ заключается в том, чтобы проверить яваскриптом инициализирована ли библиотека, и если нет – то сгенерировать запрос на ее подключение. Делается это просто:
 
Код
<script type="text/javascript"> 
if(window.jQuery==undefined) {
document.write(unescape("%3Cscript src='/js/jquery-1.3.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>

Особенностью данного метода является то, что jQuery начнёт грузиться только после полной загрузки страницы. Это значит, что Вы должны учесть это, чтобы Ваш код не начал выполнять раньше чем подключится библиотера. А также все плагины придется подключить таким же образом через document.write.
« Последнее редактирование: 16.03.2011, 19:07:03 от Alexpro2011 »
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
Кстати 1 метод отлично сработал, Ура товарищи!
Проще не бывает)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 59898
Последний ответ 29.11.2023, 14:41:12
от sivers
Поиск по сайту

Автор smadkz

Ответов: 0
Просмотров: 1654
Последний ответ 09.11.2018, 09:13:30
от smadkz
Подскажите по совместимости jquery

Автор M60aut

Ответов: 0
Просмотров: 1361
Последний ответ 10.02.2017, 11:05:05
от M60aut
Как вызвать модуль с текстом, если не работает админка?

Автор kirill-juk

Ответов: 2
Просмотров: 2412
Последний ответ 19.11.2016, 00:43:18
от SeBun
нужна помошь по сайту для слабовидящих

Автор twitti

Ответов: 0
Просмотров: 1502
Последний ответ 18.08.2016, 17:38:14
от twitti