news. В настройках стоит использовать режим Ajax. В шаблоне сайта подключается CJSCore::Init(["jquery3"]); , то есть jquery-3.3.1.min.js из ядра. Далее подключаются различные нужные плагины jquery. Когда происходит фильтрация новостей запросом ajax срабатывает script.js шаблона компонента, Вываливается ошибка "Uncaught TypeError: jQuery(...).contentPopup is not a function" и следующий клик по фильтру срабатывает не в режиме ajax, а просто перекидывает на страницу, где отображается результат запроса (голый отфильтрованный код компонента без хедера и футера).
Раскопал, что дело в том, что изначально подключаем jquery-3.3.1, цепляем к нему все плагины. А при фильтрации почему-то битрикс подключает jquery-1.8.3, и естественно все плагины слетают. Ну и дальше из-за js ошибки ничего нормально не работает.
Скрипты, которые после ajax фильтрации подключаются, берутся тут:
\bitrix\modules\main\classes\general\component_ajax.php
из $APPLICATION->arHeadScripts. Принтанул их:
Array
(
[0] => /local/templates/temp/components/bitrix/news/temp/bitrix/catalog.filter/.default/script.js
[1] => /local/templates/temp/components/bitrix/news/temp/bitrix/news.list/.default/script.js
[2] => /bitrix/js/main/jquery/jquery-1.8.3.min.js
)
При этом в шаблоне нигде нет подключения CJSCore::Init(["jquery"]); (первой версии из ядра)
Варианты исправления косяка, которые точно сработают:
1) Удалить файл /bitrix/js/main/jquery/jquery-1.8.3.min.js. Он не сможет подключаться и ломать jquery, всё будет работать хорошо.
2) Отказаться от использования встроенного режима ajax и написать кастомную ajax фильтрацию.
Оба варианта рабочие, но хочется сделать, чтобы всё работало нормально, стандартно и без костылей.
Что я хочу: найти, какая зараза подключает jquery-1.8.3 и отключить это к хренам. Найти никак не удалось, откуда идёт подключение. Кто-нибудь сталкивался? Как можно отыскать источник подключения?
Странная штука. У меня не было конфликтов в типовом ajax и подключении jquery2 из ядра. Можно попробовать CJSCore::Init(["jquery3"]) не в шапке, а в шаблоне компонента или в result_modifier.php
Спасибо. Я нашёл виновника. https://marketplace.1c-bitrix.ru/solutions/uplab.tilda/#tab-install-link в include.php подключает.
Обсуждают сегодня