Геттеры
title
get title(): string
Псевдоним placement. Возвращает заголовок placement ('DEFAULT', если заголовок не был предоставлен родительским окном).
placement
get placement(): string
Возвращает заголовок placement. По умолчанию возвращает 'DEFAULT', если заголовок не задан.
isDefault
get isDefault(): boolean
Возвращает true, если заголовок placement равен 'DEFAULT'.
options
get options(): any
Возвращает объект опций placement. Объект заморожен для предотвращения изменений.
isSliderMode
get isSliderMode(): boolean
Возвращает true, если виджет работает в режиме слайдера (опция IFRAME равна 'Y').
// ... /////
$b24 = await initializeB24Frame()
// ... /////
if ($b24.placement.isSliderMode) {
$b24.parent.setTitle('SliderMode')
}
Методы
getInterface
async getInterface(): Promise<any>
Получение информации о JS-интерфейсе текущего места встраивания: список возможных команд и событий.
// ... /////
$b24 = await initializeB24Frame()
// ... /////
const value: any = await $b24.placement.getInterface()
bindEvent
async bindEvent(eventName: string): Promise<any>
Настройка обработчика события для интерфейса.
call
async call(command: 'setValue', parameters: { value: string }): Promise<any>
async call(command: string, parameters?: Record<string, any>): Promise<any>
Вызывает зарегистрированную команду интерфейса.
import { LoggerFactory } from '@bitrix24/b24jssdk'
// ... /////
const logger = LoggerFactory.createForBrowser('Demo', true)
$b24 = await initializeB24Frame()
// ... /////
$b24.placement.call('reloadData')
.then((respose: any) => {
logger.info('reload call')
})
setValue особенная: родительское окно вызывает JSON.parse(value)
на полученном payload, поэтому valueобязан быть JSON-сериализованной строкой. Передача
обычной строки или объекта напрямую приведёт к ошибке (SyntaxError из
JSON.parse или тихому повреждению до "[object Object]").Предпочитайте хелпер setValue, который сериализует за вас. Если вы используете
call('setValue', ...) напрямую, SDK выбросит TypeError, когда value
не является строкой.// ✗ выбрасывает TypeError — value не является строкой
await $b24.placement.call('setValue', { value: 'test' })
// ✓ работает — value является JSON-строкой
await $b24.placement.call('setValue', { value: JSON.stringify('test') })
await $b24.placement.call('setValue', { value: JSON.stringify({ id: 1 }) })
setValue
async setValue(value: unknown): Promise<any>
Удобная обёртка над placement.call('setValue', ...), которая выполняет
JSON.stringify над значением за вас. Принимает любое JSON-сериализуемое значение
(строку, число, булево, объект, массив).
$b24 = await initializeB24Frame()
// ... /////
await $b24.placement.setValue('test')
await $b24.placement.setValue({ id: 1, title: 'demo' })
callCustomBind
async callCustomBind(
command: string,
parameters: null | string | Record<string, any>,
callBack: (...args: any[]) => void
): Promise<any>
Вызывает команду интерфейса и регистрирует callback, который получает последующие события от команды. Используйте это для команд, которые порождают непрерывные события (например, обновления прогресса), вместо однократного разрешения.
parameters принимает три формы:
null— без payload.string— отправляется какsingleOption.Record<string, any>— раскрывается в payload сообщения.
$b24 = await initializeB24Frame()
// ... /////
$b24.placement.callCustomBind('subscribe', { topic: 'crm:deal' }, (event) => {
console.log('event', event)
})
Родительское окно
Предоставляет методы для управления родительским окном приложения в Bitrix24, включая изменение размера окна, управление прокруткой, инициацию звонков и открытие мессенджера.
Слайдер
Предоставляет методы для работы со слайдерами в приложении Bitrix24. Позволяет открывать и закрывать слайдеры, а также управлять их содержимым.