Установить обработчик события интерфейса BX24.placement.bindEvent
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
placementКто может выполнять метод: любой пользователь
Метод BX24.placement.bindEvent устанавливает обработчик события интерфейса. Событие должно быть зарегистрировано текущей точкой встраивания, иначе подписка не сработает.
BX24.placement.bindEvent(event, callback);
Это события интерфейса, а не события REST: обработчик выполняется в браузере, в коде виджета, и его не регистрируют методом event.bind.
Параметры
Обязательные параметры отмечены *
|
Название |
Описание |
|
event* |
Имя события, на которое подписывается обработчик |
|
callback* |
Функция обратного вызова. Обработчик |
Подписываться нужно на каждое событие отдельно: подписки сразу на все события нет.
Какие события доступны
Набор событий задает точка встраивания, в которой открыт виджет.
|
Точка встраивания |
События |
|
|
|
|
17 событий |
|
|
|
|
|
|
Примеры кода
Как использовать примеры в документации
BX24.ready(function () {
BX24.init(function () {
BX24.placement.bindEvent('BackgroundCallCard::initialized', function (eventData) {
console.log(eventData);
});
BX24.placement.bindEvent('CallCard::CallStateChanged', function (callState) {
console.log(callState);
});
});
});
// $b24 — инициализированный экземпляр SDK, см. руководство по началу работы
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
await $b24.placement.bindEvent('CallCard::CallStateChanged', (callState: string) => {
console.log(callState)
})
<!-- Загрузка SDK в UMD-сборке, глобальный объект B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', async () => {
const $b24 = await B24Js.initializeB24Frame()
await $b24.placement.bindEvent('CallCard::CallStateChanged', (callState) => {
console.log(callState)
})
})
</script>
Результат
Метод ничего не возвращает. Данные приходят в callback при каждом наступлении события — состав аргументов описан на странице конкретного события. Вернуть значение обратно в Битрикс24 из обработчика нельзя: события односторонние, реакция приложения — это отдельный вызов команды или метода REST.
Ошибки
Подписку на незарегистрированное событие Битрикс24 игнорирует молча, ошибка не приходит.
Проверьте два условия:
- виджет открыт в той точке встраивания, где событие зарегистрировано. Текущую точку показывает BX24.placement.info
- имя события передано без опечаток и с учетом регистра. Список доступных событий возвращает BX24.placement.getInterface