5.1 Метод передачи данных и команд в форму редактирования

Для передачи данных и команд в окно формы редактирования данных используется интерфейс окна содержимого: атрибут contentWindow элемента <iframe>. Методом postMessage необходимо передать данные в окно iframe в виде объекта следующей структуры:

  • data (объект): {
    • action (строка) — команда для выполнения в форме редактирования;
    • data ({объект}) — параметры команды, необходимые для её выполнения
  • }

В окно формы редактирования могут быть переданы следующие команды:

  • pressSaveDocumentBtn – сохранение введенных структурированных данных в файл XML;
  • setIframesContent – загрузка в редактор данных из файла XML;
  • initData – инициализация контекста формы редактирования документа;
  • addStyleTag – добавление CSS-стилей на веб-страницу редактора.

Подробное описание команд и их параметров приведены в курсе далее.

Пример реализации в JavaScript:

<script>
    // Получение открытого окна редактора по 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>
Последнее изменение: Friday, 12 July 2024, 16:36