Тег <iframe>
Тег <iframe> встраивает другой HTML-документ внутрь текущей страницы как отдельный вложенный browsing context.
Syntax
<iframe src="https://example.com/widget" title="Описание содержимого"></iframe> Attributes
| src / srcdoc | URL внешнего документа, или srcdoc для встроенного HTML прямо в атрибуте. |
| sandbox | Ограничивает возможности содержимого фрейма. Пустой sandbox="" — максимальные ограничения (без скриптов, без same-origin доступа); отдельные токены (allow-scripts и т.д.) ослабляют конкретные ограничения. |
| allow | Permissions Policy для фрейма: camera, microphone, geolocation и т.д. |
| loading | "lazy" откладывает загрузку фрейма за пределами видимой области. |
| title | Обязателен для доступности — описывает назначение содержимого фрейма. |
Example
<iframe src="https://www.youtube.com/embed/VIDEO_ID" title="Видео" loading="lazy"></iframe>
Notes
- Без атрибута sandbox содержимое фрейма с другого origin всё равно изолировано same-origin policy браузера, но sandbox добавляет дополнительные явные ограничения даже для контента с того же origin.
- sandbox="allow-scripts allow-same-origin" одновременно фактически снимает изоляцию — так комбинировать не стоит для недоверенного контента.
Accessibility
- Без title скринридеры объявляют фрейм просто как "iframe" без пояснения, что внутри.