5.3 Получение данных из формы в формате XML
Для сохранения введённых данных из формы ввода в XML необходимо отправить команду pressSaveDocumentBtn в окно формы редактирования.
Команда: pressSaveDocumentBtn
Действие:
Вызывает событие нажатия кнопки сохранения документа.
Параметры:
нет (без параметров)
Возвращаемый результат:
Данные возвращаются в обработчик событий внутри объекта event свойства event.data.data.xml в виде строки с XML-данными, сформированными на основе заполненной формы редактирования (см. раздел 5.2 Подключение обработчика событий и получение данных из формы). Результат возвращается в любом случае, даже если не все данные в форме были заполнены.
Пример реализации в JavaScript:
<script>
// Подключение обработчика событий
window.addEventListener('message', handlePostMessage);
// Обработчик событий редактора структурированных данных
async function handlePostMessage(event) {
// если произошло событие 'XMLSend' (событие нажатия кнопки «Сохранить данные»)
if (event?.data?.data?.action == 'XMLSend') {
let link = document.createElement('a');
link.href = 'data:text/plain;charset=utf-8,' +
encodeURIComponent(event?.data?.data.xml); //обращение к сформированным Порталом данным XML
link.download = 'digital.xml';
link.click(); // инициировать загрузку файла
}
function pressSaveBtn() {
// Получение открытого окна редактора по id=”editor” в переменную editorWindow
let editorWindow = document.querySelector('#editor').contentWindow;
// Отправка команды pressSaveDocumentBtn в открытое окно редактора:
// Параметры: нет
editorWindow.postMessage({
system_id: 'GosedoPortal',
data: {
action: 'pressSaveDocumentBtn',
data: {}
}
},
'*');
}
</script>
<!--фрейм с подключенной формой редактирования данных Портала ГосЭДО-->
<iframe class="editor" id="editor" src="http://10.77.142.21:84/#/constructor/selector/?theme=light"></iframe>
<!--кнопка, инициирующая выгрузку файла XML-->
<button onclick="pressSaveBtn()">Выгрузить в XML</button>
С выполнением демонстрационного примера по описанной функции можно ознакомиться в разделе 4.3 Демонстрация выгрузки данных из формы в XML.