← К заметкам

Заметки

BX is not defined после подключения BX24.js

BX24.init уже отработал, REST-запросы выполняются, а обращение к BX заканчивается ReferenceError. Это не признак незавершённой инициализации: BX24 и BX принадлежат разным библиотекам.

BX24.js связывает страницу приложения с порталом. BX — пространство имён JavaScript-ядра Bitrix Framework и его расширений. Подключение SDK приложения само по себе не загружает туда классы интерфейса портала.

В консоли именно фрейма приложения различие видно без вызова API:

console.log('SDK приложения:', typeof window.BX24);
console.log('Ядро Framework:', typeof window.BX);

Для REST используйте BX24.callMethod после BX24.init. Для собственного интерфейса приложения можно использовать обычный JavaScript и выбранную UI-библиотеку. В своей странице коробки расширения BX.UI подключаются отдельно средствами Framework.

Попытка обратиться к window.parent.BX из приложения на другом домене упирается ещё и в изоляцию фреймов браузером. SDK предоставляет предусмотренный канал взаимодействия с порталом.

Выбор между BX24.js и B24JsSDK — следующий вопрос, уже внутри разработки приложения.

Документация: BX24.init; JS-библиотека Bitrix Framework.