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.

Последнее изменение: Wednesday, 26 June 2024, 12:48