Как найти конфликт JavaScript в Joomla?

Хотя JavaScript красив и очень удобен, он также может сбивать сайт, если несколько библиотек конфликтуют друг с другом. Можно ожидать, что конфликты JavaScript появятся, поскольку все больше и больше расширений использующих JavaScript устанавливаются на сайтах Joomla. В расширениях могут использоваться разные библиотеки JavaScript или разные версии библиотеки или библиотеки, созданные разными разработчиками, которые могут находиться в конфликте друг с другом.

Что вызывает конфликты JavaScript?
Различные версии библиотеки Mootools и библиотеки jQuery могут создавать множество конфликтов JavaScript. Событие, когда вы используете те же версии библиотек, но библиотеки, созданные разными разработчиками (например, конфликты jQuery и Mootools), также может вызвать конфликт JavaScript.

Конфликт JavaScript в Joomla
Вот пример:

Шаблон A загружает библиотеку Mootools версии 1.5.0
Плагин B загружает собственную библиотеку Mootools версии 1.2.6
Модуль C загружает библиотеку jQuery версии 1.11
Компонент D загружает библиотеку jQuery версии 2.1.1

Как определить конфликты JavaScript?
Поэтому, когда ваш сайт работает не так, как следует, нужно исключать конфликты. Но как проверить и найти конфликт JavaScript? Существует несколько способов сделать это на основе браузеров. Например, в Firefox и Chrome доступными инструментами являются Firebug, Web Developer toolbar, Debugger, Error Console и т.д.

Если на вашем сайте есть ошибка JavaScript, инструменты предоставят вам сообщения об ошибках, которые помогут вам разобраться в проблеме (сообщение об ошибке также дает вам имена файлов в конфликтах.)

Обнаружение конфликта JavaScript в Joomla с использованием firebug на Firfox

Вы можете обнаружить проблему, проверив, какие расширения вызывают проблему, вот шаги:

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

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

  1. Поместите jQuerry в режим без конфликтов
    Библиотека jQuery и все ее плагины содержатся в пространстве имен jQuery. Глобальные объекты хранятся внутри пространства имен jQuery, поэтому вы не должны сталкивать между собой jQuery и любую другую библиотеку, например prototype.js, MooTools.

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

  1. Попросите помощи у продюсера
    Если вы не можете самостоятельно решить конфликт JavaScript, вы можете поискать решения в Интернете, спрашивать на форумах, например, stackoverflow.com или запрашивать поддержку поставщика расширения для решения.
  2. У моего сайта разные проблемы?
    Конфликт JavaScript — всего лишь один тип ошибки, ошибки также могут быть получены от PHP, SQL и т.д. Вы можете обнаружить эти ошибки с помощью отчетов об ошибках Joomla