Skip to content

Latest commit

 

History

History
18 lines (15 loc) · 2.81 KB

File metadata and controls

18 lines (15 loc) · 2.81 KB

ExtEmbed

Компонент ExtEmbed предназначен для встраивания на Турбо-страницу виджетов, требующих для своей работы загрузку внешних скриптов. ExtEmbed оборачивает содержимое виджета в безопасную песочницу c iframe.

ExtEmbed принимает в качестве пропсов:

  • html (обязательный) - строка, содержащая html-разметку, которую необходимо поместить в песочницу;
  • iframeClass (опциональный) - строка, содержащая css-класс, который будет установлен тегу iframe для стилизации виджета (например, указания размеров);
  • iframeWidth и iframeHeight (опциональные) - строки для установки тегу iframe ширины и высоты соответственно;
  • isLoaded (опциональный) - параметр логического типа, с помощью которого ExtEmbed "поймет", что виджет загрузился, и скроет выводимую поверх виджета паранджу о загрузке. При отсутствии параметра ExtEmbed будет опираться на событие iframe.onload для скрытия паранджи.
  • onMessage (опциональный) - callback-функция, которая будет вызвана при обработке сообщения postMessage

В случае необходимости обработки сообщений от виджета можно передать функцию для обработки сообщений в onMessage компонента ExtEmbed для коммуникации. Компонент ExtEmbed подписывается на сообщения в формате postMessage. Эти сообщения фильтруются и обрабатываются только сообщения от дочерних iframe. При получении таких сообщений вызваются callback-функции, переданные в пропс onMessage. Для обработки на стороне виджета нужно сделать 1 общий обработчик, который внутри будет рабирать сообщени по типам. Этот обработчик следует передавать в onMessage компонента ExtEmbed. Пример использования можно найти тут