Как правильно подключать JQeary в плагине? Есть решение

Вопрос такой. Пишу плагин. Возможно, добавлю его в маркет. В плагине используется Jqeary на фронтенде. Как мне стоит правильно ее подключать на страницах сайта? Файл может быть уже подключен в теме дизайна, а может не быть. Что-то мне подсказывает, что просто так подключать JQeary не очень хорошо, ведь если все плагины будут так делать, то это сильно увеличит загрузку страниц. Но как правильно сделать проверку и подключать/не подключать библиотеку? В документации WA ответа не нашел.

Вот пример. Для работы скриптов, мне требуется подключить это:

<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

В теме дизайна Default это не подключено. Но в других темах это может быть подключено. Как правильно проверить?

4 ответа

  • 1
    Игорь Гапонов 9 октября 2020 11:03 # Решение

    В дефолте подключается так:

    <script type="text/javascript" src="{$wa_static_url}wa-content/js/jquery/jquery-1.11.1.min.js" ></script>

    Фронтенд работает на Jquery. Ничего подключать не нужно.

    На крайний случай можно проверить так: 

    if (typeof jQuery === 'undefined') {
        var script = document.createElement('script');
        script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
        document.getElementsByTagName('head')[0].appendChild(script);
    }

    Не уверен, что в этом есть необходимость.

    • +1
      chikurov-seo chikurov-seo 9 октября 2020 14:13 #

      Спасибо за ответ.

      1) > Фронтенд работает на Jquery. Ничего подключать не нужно.

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

      2) Как быть с библиотекой "jquery-ui"?

      Погуглил и пришел к такому варианту:

      if (typeof jQuery == "function" && ('ui' in jQuery) && jQuery.ui && ('version' in jQuery.ui)) {
          alert('уже подключено');
      } else {
          alert('ща подключим');
          <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
      }

      Нужно ли так делать в плагине?

      • +1
        Игорь Гапонов Игорь Гапонов 9 октября 2020 14:52 #

        1) Да

        2) Для ui желательно. С версией только могут быть проблемы. На странице может быть устаревшая версия.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите