0Pricing
HTML Academy · Урок

Элемент iframe: src и sandbox

Встраивайте сторонние страницы и ограничивайте их возможности

«Элемент iframe: src и sandbox» — бесплатный урок HTML Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.

Что такое iframe

Элемент <iframe> встраивает другой HTML-документ в текущую страницу. Каждый iframe имеет собственный контекст просмотра, DOM и область видимости JavaScript. Содержимое iframe не может обращаться к DOM родительской страницы без явного разрешения.

Базовое использование iframe

Укажите URL для встраивания в атрибуте src: <iframe src="https://example.com" width="800" height="600">. iframe создаёт новый контекст просмотра. Для доступности требуется атрибут title: title="Embedded map".

Атрибут sandbox

sandbox применяет ограничения к содержимому iframe: по умолчанию отключает скрипты, формы, всплывающие окна и плагины. Добавьте отдельные разрешения, чтобы восстановить нужные возможности: sandbox="allow-scripts allow-same-origin".

Разрешения sandbox

allow-scripts включает JavaScript. allow-same-origin позволяет считать iframe имеющим тот же источник, что и родительский документ (это необходимо для доступа к localStorage). allow-forms включает отправку форм. allow-popups разрешает window.open(). Предоставляйте только минимально необходимые разрешения.

Кросс-доменные iframe

Кросс-доменные iframe не могут обращаться к DOM родительской страницы: parent.document вызывает ошибку безопасности. Для связи между фреймами с разными источниками используется postMessage: iframe.contentWindow.postMessage(data, origin).

Обмен сообщениями через postMessage

Отправляйте сообщения из родительской страницы в iframe: iframe.contentWindow.postMessage({ type: "update", data: {} }, "https://embed.example.com"). В iframe настройте прослушивание: window.addEventListener("message", handler). Всегда проверяйте event.origin перед обработкой сообщения.

Отложенная загрузка iframe

loading="lazy" у iframe откладывает загрузку, пока iframe не окажется рядом с областью просмотра, и уменьшает время начальной загрузки страницы. Это полезно для карт, видео и виджетов социальных сетей, расположенных ниже первого экрана и не видимых сразу.

Производительность фреймов

Каждый фрейм загружает отдельный документ HTML, CSS, JavaScript и ресурсы — это существенно увеличивает расход ресурсов. Не используйте фреймы для содержимого, которое можно встроить как фрагмент. Для фреймов, расположенных ниже видимой области, применяйте отложенную загрузку. Рассмотрите паттерны фасада (сначала показывайте заполнитель, а загружайте содержимое по нажатию).

Управление прокруткой

Управляйте прокруткой фрейма: scrolling="no" отключает полосы прокрутки (устарело; используйте в CSS свойство overflow: hidden для фрейма). Современный подход: задавайте высоту фрейма равной высоте содержимого, устраняя необходимость во внутренних полосах прокрутки.

Атрибут allow

Атрибут allow предоставляет фрейму функции политики разрешений: allow="camera; microphone; fullscreen". Благодаря этому фрейм может запрашивать доступ к камере, микрофону и API полноэкранного режима, даже если источник-родитель не использует эти функции.

Встраивание YouTube и карт

YouTube и Карты Google предоставляют код для встраивания фреймов. В этот код входят атрибуты allow для полноэкранного режима и автоматического воспроизведения. Для доступности программам чтения с экрана всегда добавляйте title="Video title". Атрибут sandbox обычно не добавляется в коды встраивания от сторонних сервисов — ознакомьтесь с их документацией по рекомендациям безопасности.

Проверка знаний

Что по умолчанию делает атрибут sandbox с фреймом, если ему не заданы значения?

Итоги

Фреймы встраивают внешние документы в изолированных контекстах просмотра. Атрибут sandbox ограничивает возможности фрейма — предоставляйте только минимально необходимые разрешения. postMessage обеспечивает безопасное межисточниковое взаимодействие. Отложенная загрузка откладывает затратную загрузку ресурсов для фреймов ниже видимой области. Атрибут allow предоставляет функции политики разрешений доверенным встраиваемым объектам сторонних источников.

Часто задаваемые вопросы

Урок «Элемент iframe: src и sandbox» бесплатный?

Да — полный текст урока «Элемент iframe: src и sandbox» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «Элемент iframe: src и sandbox»?

Встраивайте сторонние страницы и ограничивайте их возможности Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать HTML Academy?

Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Элемент iframe: src и sandbox»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке HTML Academy?

Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Элемент iframe: src и sandbox
  2. Безопасность iframe: кликджекинг и X-Frame-Options
  3. Элементы embed и object
  4. Отложенная загрузка iframe
← Назад к HTML Academy