Блок Iframe
Block: iframeCommunity Edition+Введение
Блок IFrame позволяет встраивать внешние веб-страницы или контент в текущую страницу. Пользователи могут бесшовно интегрировать внешние приложения, настроив URL или напрямую вставив HTML-код. С HTML пользователи могут гибко настраивать контент под конкретные требования отображения, что делает подход удобным для кастомных сценариев. Такой метод позволяет загружать внешние ресурсы без перенаправления, улучшая пользовательский опыт и интерактивность страницы.
Установка
Это встроенный плагин, установка не требуется.
Добавление блоков

Настройте URL или Html, чтобы напрямую встроить внешнее приложение.

Движок шаблонов
Строковый шаблон
Шаблонный движок по умолчанию.
Handlebars

Подробнее см. в документации шаблонов Handlebars.
Передача переменных
Поддержка HTML для парсинга переменных
Поддержка выбора переменных из селектора переменных в контексте текущего блока


Поддержка внедрения переменных в приложение и использования их через код
Вы также можете внедрять пользовательские переменные в приложение через код и использовать их в HTML. Например, создание динамического календаря с использованием Vue 3 и Element Plus:

Пример: простой компонент календаря на React и Ant Design (antd), с использованием dayjs для работы с датами

URL поддерживает переменные

Подробнее о переменных см. документацию Переменных.
Создание iframe через JS-блоки (NocoBase 2.0)
В NocoBase 2.0 вы можете использовать JS-блоки, чтобы динамически создавать iframes с большим контролем. Такой подход обеспечивает лучшую гибкость для настройки поведения и стилей iframe.
Базовый пример
Создайте JS-блок и используйте следующий код, чтобы создать iframe:
Ключевые моменты
- ctx.element: DOM-элемент контейнера текущего JS-блока
- sandbox attribute: управляет ограничениями безопасности для содержимого iframe
allow-scripts: разрешает выполнение скриптов внутри iframeallow-same-origin: позволяет iframe обращаться к собственному origin
- replaceChildren(): заменяет все х дочерних элементов контейнера на iframe
Продвинутый пример со статусом загрузки
Вы можете дополнить создание iframe статусами загрузки и обработкой ошибок:
Соображения безопасности
При использовании iframes учитывайте следующие рекомендации безопасности:
- Используйте HTTPS: по возможности всегда загружайте содержимое iframe по HTTPS
- Ограничивайте права sandbox: включайте только необходимые разрешения sandbox
- Политика безопасности контента (CSP): настраивайте корректные заголовки CSP
- Политика одинакового источника (Same-Origin Policy): учитывайте ограничения междоменного доступа
- Доверенные источники: загружайте контент только с доверенных доменов

