Spec-Zone.ru › HTML

<fencedframe> элемент HTML для изолированного фрейма

Ограниченная доступность

Эта функция не входит в Baseline, поскольку она не работает в некоторых наиболее широко используемых браузерах.

  • Подробнее
  • Полная информация о совместимости
  • Оставить отзыв
>

Экспериментальная: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости с браузерами.

Элемент <fencedframe> из HTML представляет собой вложенный контекст просмотра, в который встраивается другая HTML-страница. <fencedframe>ы очень похожи по форме и функциям на элементы <iframe>, за исключением того, что:

  • Взаимодействие между содержимым <fencedframe> и встраивающим его сайтом ограничено.
  • <fencedframe> может получать доступ к данным с других сайтов, но только при строго определенных контролируемых условиях, обеспечивающих конфиденциальность пользователей.
  • <fencedframe> нельзя изменять, а доступ к его данным нельзя получить с помощью обычных скриптов (например, прочитать или задать исходный URL). Содержимое <fencedframe> можно встраивать только с помощью специальных API.
  • <fencedframe> не может обращаться к DOM встраивающего контекста, а встраивающий контекст не может обращаться к DOM <fencedframe>.

Элемент <fencedframe> — это тип <iframe> со встроенными дополнительными средствами защиты конфиденциальности. Он устраняет недостатки <iframe>ов, например зависимость от сторонних файлов cookie и другие риски для конфиденциальности. Подробнее см. в разделе Fenced Frame API.

Атрибуты

Этот элемент включает глобальные атрибуты.

allow

Задает политику разрешений для <fencedframe>, которая определяет доступные <fencedframe> функции в зависимости от источника запроса. Подробнее о том, какие функции можно контролировать с помощью политики, заданной для изолированного фрейма, см. в разделе Политики разрешений, доступные для изолированных фреймов.

height

Безразмерное целое число, обозначающее высоту изолированного фрейма в пикселях CSS. Значение по умолчанию — 150.

width

Безразмерное целое число, обозначающее ширину изолированного фрейма в пикселях CSS. Значение по умолчанию — 300.

Политики разрешений, доступные для изолированных фреймов

Разрешения, передаваемые из контекста верхнего уровня изолированному фрейму для включения или запрета функций, могут использоваться как канал связи и поэтому представляют угрозу конфиденциальности. В результате стандартные веб-функции, доступность которых можно контролировать с помощью политики разрешений (например, camera или geolocation), недоступны в изолированных фреймах.

Включать с помощью политики внутри изолированных фреймов можно только отдельные функции, предназначенные для использования в них:

  • Protected Audience API
    • attribution-reporting
    • private-aggregation
    • shared-storage
    • shared-storage-select-url
  • Shared Storage API
    • attribution-reporting
    • private-aggregation
    • shared-storage
    • shared-storage-select-url

В настоящее время эти функции всегда включены внутри изолированных фреймов. В будущем набор включенных функций можно будет контролировать с помощью атрибута <fencedframe> allow. Блокировка функций Privacy Sandbox таким способом также заблокирует загрузку изолированного фрейма — канал связи будет полностью отсутствовать.

Перемещение фокуса между границами изолированного фрейма

Возможность перемещать активный фокус документа через границы изолированного фрейма (то есть с элемента за пределами фрейма на элемент внутри него или наоборот) ограничена. Это можно сделать с помощью действий пользователя, например щелчка или нажатия клавиши Tab, поскольку такие действия не создают риска снятия цифрового отпечатка.

Однако переход через границу с помощью вызова API, например HTMLElement.focus(), запрещен: вредоносный скрипт может использовать серию таких вызовов, чтобы передать выведенную информацию через границу.

Позиционирование и масштабирование

Поскольку <fencedframe> является замещаемым элементом, положение встроенного документа внутри его контейнера можно настроить с помощью свойства object-position.

Примечание: Свойство object-fit не влияет на элементы <fencedframe>.

Размер встроенного содержимого может задаваться внутренними свойствами contentWidth и contentHeight объекта <fencedframe> config. В таких случаях изменение width или height элемента <fencedframe> изменит размер встроенного контейнера на странице, но документ внутри контейнера будет визуально масштабирован, чтобы поместиться в него. Сообщаемые ширина и высота встроенного документа (то есть Window.innerWidth и Window.innerHeight) останутся неизменными.

Доступность

Люди, использующие вспомогательные технологии, например программы чтения с экрана, могут добавить описание содержимого с помощью атрибута title элемента <fencedframe>. Значение атрибута title должно кратко описывать встроенное содержимое:

<fencedframe
  title="Advertisement for new Log. From Blammo!"
  width="640"
  height="320"></fencedframe>

Без этого описания пользователям придется перейти к <fencedframe>, чтобы понять, что именно в него встроено. Такая смена контекста может сбивать с толку и отнимать много времени, особенно на страницах с несколькими <fencedframe>ами и/или если встроенные элементы содержат интерактивный контент, например видео или аудио.

Примеры

Чтобы задать содержимое, которое будет отображаться в <fencedframe>, использующий API (например, Protected Audience или Shared Storage) создает объект FencedFrameConfig, который затем задается в качестве значения свойства config элемента <fencedframe>.

В следующем примере объект FencedFrameConfig извлекается из рекламного аукциона Protected Audience API, а затем используется для отображения выигравшего объявления в <fencedframe>:

<fencedframe width="640" height="320"></fencedframe>
const frameConfig = await navigator.runAdAuction({
  // … auction configuration
  resolveToConfig: true,
});

const frame = document.querySelector("fencedframe");
frame.config = frameConfig;

Примечание: Для получения объекта FencedFrameConfig необходимо передать resolveToConfig: true в вызов runAdAuction(). Если он не задан, результирующий объект Promise разрешится в URN, который можно использовать только в элементе <iframe>.

Техническая сводка

Категории содержимого Потоковое содержимое, фразовое содержимое, встроенное содержимое, интерактивное содержимое, осязаемое содержимое.
Допустимое содержимое Нет.
Опускание тегов Не допускается: обязательны открывающий и закрывающий теги.
Допустимые родительские элементы Любой элемент, допускающий встроенное содержимое.
Неявная роль ARIA Соответствующая роль отсутствует
Допустимые роли ARIA application, document, img, none, presentation
Интерфейс DOM HTMLFencedFrameElement

Спецификации

Спецификация
Fenced Frame>
# the-fencedframe-element>

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
fencedframe 126 126 Нет 112 Нет 126 Нет 83 Нет 28.0 126 Нет
allow 126 126 Нет 112 Нет 126 Нет 83 Нет 28.0 126 Нет
height 126 126 Нет 112 Нет 126 Нет 83 Нет 28.0 126 Нет
width 126 126 Нет 112 Нет 126 Нет 83 Нет 28.0 126 Нет

См. также

  • API изолированных фреймов
  • Изолированные фреймы на privacysandbox.google.com
  • Песочница конфиденциальности на privacysandbox.google.com

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/fencedframe

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API