Я работаю над интеграцией редактора Draw.io в свое собственное веб-приложение, основанное на html css js. Как разработчик моделей данных, я мало знаю JavaScript. Я успешно встроил Draw.io в iframe и могу в некоторой степени с ним взаимодействовать. Однако мне нужна помощь в извлечении XML-данных спроектированной диаграммы ERD с холста и передаче их обратно в мое приложение для дальнейшей обработки и создания сценария SQL DDL из модели ERD. Но я не могу этого сделать, и вот моя текущая ситуация:
Текущая настройка
< li>Среда хостинга:
Я развернул редактор Draw.io на своем сервере, используя Tomcat, с NGINX в качестве прокси. Приложение доступно по этому URL:
Я хочу получить чистые XML-данные диаграммы созданный в редакторе Draw.io через iframe с использованием postMessage. Затем данные XML будут сохранены в базе данных для дальнейшей обработки и создания сценария SQL DDL из модели ERD.
< strong>Что я пробовал
Отправка postMessage в Iframe
Для отправки сообщения в iframe я использовал следующий код JavaScript:
postMessage, кажется, отправляется успешно, но я не вижу ответа или XML-данных, возвращаемых в мое приложение.
Никакие сообщения не регистрируются в консоли iframe.
Ожидаемое поведение
Когда я отправляю { действие: 'export', формат: 'xml' в iframe, я ожидаю, что iframe ответит экспортированными XML-данными из холста Draw.io.
Вопросы >
Есть ли какая-либо дополнительная конфигурация или настройка API, необходимая для того, чтобы Draw.io мог обрабатывать события postMessage для экспорта данных XML?
Есть ли какие-либо разрешения, заголовки или конфигурации происхождения, которые мне нужно настроить на сервере или в iframe, чтобы это работало?
Может ли кто-нибудь предоставить рабочий пример или руководство по достижению этой интеграции?
Приложение: APEX (интеграция на основе HTML, CSS и JavaScript)
li>
Я не использую embed=1 в URL-адресе iframe, так как хочу, чтобы инструменты дизайна оставались видимыми.
URL-адрес https: //app.flingex.com/draw/ работает нормально при прямом доступе.
Что мне нужно
Я ищу руководство о том, как правильно реализовать следующее:
Отправить сообщение из моего веб-приложения в iframe, чтобы запустить экспорт XML.
Получите экспортированные XML-данные в родительском приложении (через postMessage или другой
Любые конкретные настройки, сценарии или фрагменты кода Draw.io, необходимые для включения этой функции.
Спасибо!
Я ценю любую помощь или предложения по решению этой проблемы. Дайте мне знать, если вам нужна дополнительная информация или доступ к каким-либо конкретным фрагментам кода.
[h4][b]Описание[/b][/h4] Я работаю над интеграцией редактора Draw.io в свое собственное веб-приложение, основанное на html css js. Как разработчик моделей данных, я мало знаю JavaScript. Я успешно встроил Draw.io в iframe и могу в некоторой степени с ним взаимодействовать. Однако мне нужна помощь в извлечении XML-данных спроектированной диаграммы ERD с холста и передаче их обратно в мое приложение для дальнейшей обработки и создания сценария SQL DDL из модели ERD. Но я не могу этого сделать, и вот моя текущая ситуация: [h4][b]Текущая настройка[/b][/h4] [list] < li>[b]Среда хостинга[/b]:
Я развернул редактор Draw.io на своем сервере, используя Tomcat, с NGINX в качестве прокси. Приложение доступно по этому URL:
[code]https://app.flingex.com/draw/[/code]
[*][b]Интеграция с веб-приложением[/b]:
Я встроил Редактор Draw.io в iframe в одном из моих веб-приложений, используя следующий код: [code]
[/code]
[*][b]Цель[/b]:
Я хочу получить чистые XML-данные диаграммы созданный в редакторе Draw.io через iframe с использованием postMessage. Затем данные XML будут сохранены в базе данных для дальнейшей обработки и создания сценария SQL DDL из модели ERD.
[/list] [h4]< strong>Что я пробовал[/h4] [list] [*][b]Отправка postMessage в Iframe[/b]
Для отправки сообщения в iframe я использовал следующий код JavaScript: [code]const iframe = document.getElementById('drawio_iframe'); iframe.contentWindow.postMessage( { action: 'export', format: 'xml' }, 'https://app.flingex.com' ); [/code]
[*][b]Прослушивание сообщений в iframe[/b]
Я открыл iframe непосредственно в новая вкладка ([code]https://app.flingex.com/draw/[/code]) и добавил этот прослушиватель для отладки: [code]window.addEventListener('message', function(event) { console.log('Message received:', event); }); [/code]
[*][b]Результаты[/b]: [list] postMessage, кажется, отправляется успешно, но я не вижу ответа или XML-данных, возвращаемых в мое приложение. [*]Никакие сообщения не регистрируются в консоли iframe. [/list]
[/list] [h4][b]Ожидаемое поведение[/b][/h4] [list] [*]Когда я отправляю { действие: 'export', формат: 'xml' в iframe, я ожидаю, что iframe ответит экспортированными XML-данными из холста Draw.io. [/list] [h4][b]Вопросы[/b] >[/h4] [list] [*]Есть ли какая-либо дополнительная конфигурация или настройка API, необходимая для того, чтобы Draw.io мог обрабатывать события postMessage для экспорта данных XML? [*]Есть ли какие-либо разрешения, заголовки или конфигурации происхождения, которые мне нужно настроить на сервере или в iframe, чтобы это работало? [*]Может ли кто-нибудь предоставить рабочий пример или руководство по достижению этой интеграции? [/list] [h4][b]Дополнительная информация[/b][/h4] [list] [*]Развертывание Draw.io: самостоятельное размещение (Tomcat + NGINX) [*]Приложение: APEX (интеграция на основе HTML, CSS и JavaScript) li> Я не использую embed=1 в URL-адресе iframe, так как хочу, чтобы инструменты дизайна оставались видимыми. [*]URL-адрес https: //app.flingex.com/draw/ работает нормально при прямом доступе. [/list] [h4][b]Что мне нужно[/b][/h4] Я ищу руководство о том, как правильно реализовать следующее: [list] [*]Отправить сообщение из моего веб-приложения в iframe, чтобы запустить экспорт XML. [*]Получите экспортированные XML-данные в родительском приложении (через postMessage или другой [*]Любые конкретные настройки, сценарии или фрагменты кода Draw.io, необходимые для включения этой функции. [/list] [h4][b]Спасибо![/b][/h4] Я ценю любую помощь или предложения по решению этой проблемы. Дайте мне знать, если вам нужна дополнительная информация или доступ к каким-либо конкретным фрагментам кода.