Передача данных между слайдерами
Между слайдерами можно передавать произвольные данные. Для отправки данных используются методы postMessage, postMessageAll и postMessageTop. Для приема сообщений - событие onMessage.
Событие SidePanel.Slider:onMessage
Вызывается, когда в слайдер приходит сообщение из другого слайдера. В первый аргумент обработчика приходит объект события типа BX.SidePanel.MessageEvent
Методы отправки данных
| Метод | Описание | С версии |
|---|---|---|
BX.SidePanel.Instance.postMessage( source, eventId, data ) | Отсылает сообщение (данные) в предыдущий слайдер и родительскую страницу. | |
BX.SidePanel.Instance.postMessageAll( source, eventId, data ) | Отсылает сообщение (данные) во все слайдеры и в родительскую страницу. | |
BX.SidePanel.Instance.postMessageTop( source, eventId, data ) | Отсылает сообщение (данные) только в родительскую страницу. |
Параметры
| Параметры | Описание | Тип |
|---|---|---|
| source | Идентификатор слайдера-отправителя данных. Ссылка на слайдер (экземпляр класса BX.SidePanel.Slider) или идентификатор слайдера. В случае iframe'а может быть ссылка на окно (window). | string|window|BX.SidePanel.Slider |
| eventId | Идентификатор события. Используется для того, чтобы отличить события разных слайдеров в обработчике onMessage. | string |
| data | Данные для передачи в другой слайдер. | object |
Примеры
Пример передачи данных из iframe'а в предыдущий слайдер.
BX.SidePanel.Instance.postMessage(window, "my-event-id", { title: "1234" });
Пример получения данных.
BX.SidePanel.Instance.open("/mypage.php", {
events: {
onMessage: function(event) {
console.log(
"onMessage",
"sender", event.getSender().getUrl(),
"slider", event.getSlider().getUrl(),
"data", event.getData()
);
}
}
});
Класс
| Класс | Описание | С версии |
|---|---|---|
| Класс BX.SidePanel.MessageEvent | Класс представляет сообщение, которое слайдеры посылают друг другу. |
© «Битрикс», 2001-2025, «1С-Битрикс», 2025