208 похожих чатов

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

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 и отключить это к хренам. Найти никак не удалось, откуда идёт подключение. Кто-нибудь сталкивался? Как можно отыскать источник подключения?

2 ответов

28 просмотров

Странная штука. У меня не было конфликтов в типовом ajax и подключении jquery2 из ядра. Можно попробовать CJSCore::Init(["jquery3"]) не в шапке, а в шаблоне компонента или в result_modifier.php

Ivan-Milov Автор вопроса
Alexey Nazarov
Странная штука. У меня не было конфликтов в типово...

Спасибо. Я нашёл виновника. https://marketplace.1c-bitrix.ru/solutions/uplab.tilda/#tab-install-link в include.php подключает.

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта