Обсуждение MediaWiki:JQuery.js

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск

Порядковый список кода, содержащегося в файле MediaWiki:JQuery.js[править]

jQuery[править]

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

Underscore[править]

Возможности
Работа со структурами данных и функциями.
Применение
Используется для проверки неопределённого типа объектов.

Underscore.string[править]

Возможности
Работа со строками.
Применение
Пока не применяется.

jQuery.ScrollTo и jQuery.LocalScroll[править]

Возможности
Управление прокруткою страниц.
Применение
Делает плавною прокрутку по внутренним ссылкам (из оглавлений, ко сноскам и обратно, и так далее).

jQuery Easing[править]

Возможности
Содержит ряд гладких математических функций.
Применение
Обеспечивает плавность (четвёртой степени) при прокрутках, при появлении и возникновении объектов, при их свёртывании и развёртывании.

jquery.qTip[править]

Возможности
Обеспечивает появление всплывающих прямоугольников с тенью.
Применение
Снабжает сноски всплывающими подсказками с содержимым сноски. Также употребляется при визуализации видимых поправок в некоторых правилах Традиции.

ColorBox[править]

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

EasyDrag[править]

Возможности
Позволяет перетаскивать объекты по странице.
Применение
Созданные ColorBox иллюстрации можно перетаскивать за рамку, если они закрывают важный блок в основном тексте страницы.

Обсуждение кода[править]

http://www.mediawiki.org/wiki/JQuery
Александр Машин 16:24, 30 октября 2010 (UTC)

  • Насколько я могу судить, встроенная версия jQuery у нас пока не используется. Когда мы начнём использовать её, то в заголовке страницы её подключение будет стоять выше, чем подключение MediaWiki:jQuery.js, так что достаточно будет стереть код собственно движка jQuery из файла MediaWiki:jQuery.js и оставить только плагины. Достоинством нынешнего положения дел является возможность апгрейда движка jQuery (по мере нужды) через вебоинтерфейс вместо SSH. —Mithgol the Webmaster 03:54, 31 октября 2010 (UTC)
    • Но код jQuery уже загружается:
      <script src="/w/skins/common/jquery.min.js?270"></script>
      
      Александр Машин 11:11, 31 октября 2010 (UTC)
      • Мне не загружается. У меня в настройках строит шкура MonoBook, а которая у Вас? (Кстати, возможно, именно этим вызваны глюки Оперы с подсказками.) —Mithgol the Webmaster 13:50, 31 октября 2010 (UTC)

$.client и $.colorbox[править]

При попытке редактировать в форме (например http://traditio-ru.org/wiki/Служебная:FormEdit/Книга/Кицур_Шулхан_Арух), происходят две ошибки JavaScript:

  • Uncaught exception: TypeError: Cannot convert '$.colorbox' to object и
  • Uncaught exception: TypeError: Cannot convert '$.client' to object.

Из-за этого не подключаются меню редактирования. Возможно, не загружаются или загружаются слишком поздно модули jQuery. В 1.17 работало.
Александр Машин 14:57, 28 марта 2012 (UTC)

  • Обновил и даже пропатчил mw:Extension:Local_jQuery, проблема остаётся. Пока мне представляется, что проблема не в этом расширении; такое впечатление, что сперва грузится нормальная (наша) версия jQuery, затем напрасно подменяется дефолтною. Буду исследовать дальше. —Mithgol the Webmaster 16:02, 29 марта 2012 (UTC)
  • Диагноз неутешителен. Расширение Local_jQuery вешается на хук ResourceLoaderGetStartupModules, в массиве &$modules находит модуль jQuery (под именем 'jquery' в массиве), выкидывает, ставит на его место MediaWiki:jQuery.js (под именем 'jquery-wiki' в массиве), и в таком виде этот модуль поступает в башку страницы. Затем приходит расширение SemanticForms, определяет туеву хучу модулей, часть из которых зависит от первоначального 'jquery' напрямую (эту зависимость можно тупо закомментировать в SemanticForms.php и забыть), а другая часть зависит от других модулей (например, компонентов jQuery UI), в которых прописана зависимость от первоначального 'jquery'. Тут-то грузится 'jquery' и забивает собою 'jquery-wiki', потому что создаёт новёхонький безплагинный экземпляр библиотеки jQuery. Точнее, не новёхонький, а старёхонький: у него и версия подревнее. Как эту хрень обойти — у меня пока нет идей на ночь глядя; я попробовал было MediaWiki:jQuery.js регистрировать сразу под именем 'jquery', чтобы не было канители, но это вызывает «серый экран смерти» MediaWiki, когда встроенный jQuery пытается зарегистрироваться изнутри ResourceLoader под именем 'jquery' и ужасается тому, что имя ужé занято. (Или, может быть, встроенный успевает первым, а имя занято к тому времени, когда «Local jQuery» начинает действовать.) Возможно, в дальнейшем придётся двигаться в направлении запатчивания прямо ResourceLoader, хотя мне эта мысль и не нравится. —Mithgol the Webmaster 17:56, 29 марта 2012 (UTC)
  • Сегодня после ланча меня посетила свежая мысль — залезть на сервер, нашарить там файл библиотеки jQuery, встроенной в MediaWiki, и целиком её закомментировать. В этот уикэнд надеюсь найти время и испробовать. —Mithgol the Webmaster 07:54, 30 марта 2012 (UTC)

Рекомендация временно воздержаться от обновления jQuery[править]

Один из комментариев на Хабрахабре, поступивших к выпуску jQuery 1.8.0, сообщает о глюках, наблюдаемых в плагине scrollTo (который используется и у нас в Традиции) после обновления jQuery до этой версии. Немедленной необходимости обновить jQuery пока нет, так что не рекомендую переходить на новые версии из серии 1.8.x до тех пор, пока не станет ясно, как обойти глюки scrollTo. —Mithgol the Webmaster (обсуждение) 08:08, 31 августа 2012 (UTC)

  • Вчера проверил (на другом сайте) jQuery 1.8.3 и убедился в совместной работоспособности этой версии и плагина scrollTo. Сегодня обновил jQuery до версии 1.8.3 в Традиции. Вопрос закрыт. —Mithgol the Webmaster (обсуждение) 05:26, 28 ноября 2012 (UTC)

2.0[править]

Вышло jQuery 2.0.
Александр Машин обс. 17:26, 19 апреля 2013 (UTC)

  • В связи с отказом авторов jQuery 2.0 от поддержки браузеров IE6, IE7 и IE8, доныне обладающих некоторою популярностию у поклонников браузеростроительной продукции компании Microsoft (в частности, на Windows XP просто нельзя установить браузер Internet Explorer более новый, чем IE8), я считаю целесообразным для Традиции остаться некоторое время на ветке jQuery 1.x. Сейчас сидим на 1.8, вскорости перейдём на более новую 1.9 (у которой также есть проблемы с обратной совместимостью, но не такого масштаба, как отказ от IE6—8, так что можно надеяться преодолеть их), затем перейдём на версию 1.10 (пока что ещё не вышедшую), и так далее. —Mithgol the Webmaster (обсуждение) 09:14, 20 апреля 2013 (UTC)