Вопрос по javascript, jquery – Две версии jQuery на одной странице

12

Можно ли иметь 2 разные версии jQuery в одном документе и не сталкиваться ли они друг с другом?

Например, если я создаю букмарклет и хочу основать код на jQuery. Этот букмарклет вставляется на какую-то страницу, которая использует другую версию jQuery, тогда мой код перезапишет версию, использованную на странице.

Можно ли этого избежать? Или есть другие библиотеки, которые предоставляют эту функциональность Или, может быть, я должен переосмыслить все это.

Спасибо за ответы и указатели,

боб

Вы должны определенно переосмыслить это. Вам следует обновить старые функции для работы с новым jQuery, в том числе и то, и другое - просто куча пустяков и желание столкновений. Ian Elliott
У вас есть контроль над версией jQuery, добавляемой на страницу? Вы не хотите, чтобы ваши посетители загружали ДРУГУЮ версию библиотеки, если они могут ей помочь - это плохая практика и раздувает размер файла документа для ваших посетителей. Jason Berry
Вы можете проверить, есть ли jQuery на странице, прежде чем вводить его снова. Joe Chung
возможный дубликатCan I use multiple versions of jQuery on the same page? a'r

Ваш Ответ

3   ответа
2

Вот способ определить, присутствует ли JQuery:JQuery в виджете

Разработайте самую старую версию JQuery, с которой будет работать ваш код. И откажитесь работать, если текущая версия слишком старая. Пропустят лишь несколько человек, большинство сайтов, использующих JQuery, достаточно современны.

12

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

var $j = jQuery.noConflict();

А затем загрузите вторую версию jQuery. Первый загружаемый файл доступен с помощью $ j (...), второй - с помощью $ (...).

Кроме того, кто-то сделалмаленький помощник в попытке облегчить переключение между разными версиями.

bob не контролирует загрузку первой версии, поскольку это происходит на стороннем сайте через книжный рынок. Вы можете вызвать noConflct перед добавлением более новой версии через createElement («скрипт»), который «обновит»; сторонний сайт. Можете ли вы предположить, что сторонний код совместим?
С помощью помощника по версиям вы можете переключаться между различными версиями jQuery в любое время. Просто произнесите Versions.use («jquery», «default») или «Versions.use» («jquery», «latest») после того, как вы добавили их для переключения. Если его код использует новейшую версию, а сайт третьей части - нет, он просто должен убедиться, что он правильно устанавливает версию в начале и конце своего кода.
0

Почему бы просто не иметь разные версии вашего javascript для разных версий jquery, поэтому посмотрите, какая версия есть на странице, и получите соответствующий код, который будет работать с этой версией jquery.

Это было бы безопаснее, так как все остальное может быть очень хрупким, поскольку кажется, что вы не можете контролировать версию jquery, которая будет на странице.

Похожие вопросы