5.2 Подключение обработчика событий и получение данных из формы
Для получения событий и введенных данных из открытого окна редактора структурированных данных внутри <iframe>, необходимо до открытия <iframe> подключить обработчик событий.
Пример реализации в JavaScript:
<script>
// Подключение обработчика событий, выполняется ДО открытия iframe
window.addEventListener('message', handlePostMessage)
// Обработчик событий редактора структурированных данных
async function handlePostMessage(event) {
//здесь указать действия, которые необходимо выполнить с данными, полученными из окна iframe
//при наступлении события message. Для получения данных использовать следующие свойства объекта event:
// event.origin — строка, адрес источника входящего события
// event?.data?.data.xml – строка, текст сформированного в редакторе XML-файла
// event?.data?.data.action – строка, содержит команду действия, произошедшего в окне редактирования
// event?.data?.data.errors – массив, ошибки сохранения XML, если они есть
}
</script>
<iframe class="editor" id="editor" src="http://10.77.142.21:84/#/constructor/selector/?theme=light"></iframe>
В функции, выполняемой при наступлении события message, следует указать действия, выполняемые с полученными данными. При этом можно обратиться к следующим свойствам объекта event:
- event.origin (строка) — адрес источника входящего события (пример возвращенного значения: "http://10.77.142.21:84" );
- event?.data?.data.xml (строка) – текст сформированного в редакторе XML-файла (пример возвращенного значения:
"<?xml version="1.0" encoding="UTF-8"?><doc:Документ xmlns:doc="urn:Doc01-004-00001:DocumentMeta:v0.1.0"…всё_тело_XML_в_соответствии_с_заполненной_формой_структурированных_данных…</doc:Документ> "; - event?.data?.data.action (строка) – возвращает код действия, произошедшего в окне редактирования.
Возможные значения, возвращенные в свойстве «event?.data?.data.action»:- "portalReady" — произошло событие успешной загрузки формы,
- "XMLSend" — нажата кнопка «Сохранить данные» формы редактирования (событие происходит при нажатии кнопки пользователем или после передачи в форму команды pressSaveDocumentBtn).
- event?.data?.data.errors ([массив]) – ошибки при сохранении XML, например список незаполненных обязательных полей (пример возвращенного значения при 2 незаполненных полях формы структурированных данных:
["/Документ/ДанныеДокумента/СообщенияДокумента/ВыдачаПоручения/ПредметыСобытия/Поручение/ДанныеДляВизуализации/ТекстПоручения","/Документ/ДанныеДокумента/СообщенияДокумента/ВыдачаПоручения/ПредметыСобытия/Поручение/ДанныеДляКоординации/СрокПоручения"]).
Последнее изменение: Wednesday, 26 June 2024, 12:43