Как устранить BX is not defined для незалогиненого пользователя?

Здравствуйте.
На странице располагается компонент "form.result.new" и мне нужно отследить отправку формы и если форма была отправлена, но возвратила предупреждение о неправильном заполнении полей формы, нужно отскролить страницу к форме(к якорю).
Для авторизированного пользователя все работает, а для неавторизованного в консоли высвечивается "BX is not defined ". Подумал, что чего-то не хватает, что подключается с админ панелью битрикса и начал подключать библиотеки самого битрикса. Первым подключил
<?
CJSCore::Init(array("ajax"));
?>
,ошибка в консоли пропала,но работоспособность не восстановилась.
Подключал ('jquery','ajax', 'window', 'popup').
Вот код,которым я пытаюсь отловить отправку формы
BX.addCustomEvent('onAjaxSuccess', BX.delegate(function () {
//тут чет происходит
    }, this));
  • Вопрос задан
  • 16604 просмотра
Пригласить эксперта
Ответы на вопрос 3
@rinsvent
\CJSCore::Init(); подключение ядра
Ответ написан
Комментировать
Дело в том, что битрикс не подключает bx_core если, не инициализировать ни одно расширение. А подключить только core нельзя :) подключите любое из расширений, например ajax CUtil::InitJSCore(['ajax']) тогда и core подключится.
Ответ написан
@MGA812
При поиске решения этой проблемы также рекомендуется проверить файл init.php. Там может быть прописан запрет на вывод файлов ядра Bitrix. Могут быть запрещены к выводу для неавторизованных пользователей файлы kernel.main.js, main.core.js, а также скрипты библиотек BX. Такая процедура запрета обычно используется для ускорения работы сайта, но если на конкретном сайте файлы ядра задействованы в функционале, скрипт на их блокировку лучше не применять. В моем случае проблема оказалась именно в этом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы