Руководство по API полноэкранного режима
Эта статья демонстрирует, как использовать API полноэкранного режима для перевода заданного элемента в полноэкранный режим, а также как обнаружить, когда браузер переходит в или выходит из полноэкранного режима.
Переход в полноэкранный режим
Для перевода элемента (например, <video>) в полноэкранный режим, можно вызвать его метод requestFullscreen().
Рассмотрим этот элемент <video>:
<video controls id="my-video"> <source src="somevideo.webm" /> <source src="somevideo.mp4" /> </video>
Мы можем перевести это видео в полноэкранный режим следующим образом:
const elem = document.getElementById("my-video");
if (elem.requestFullscreen) {
elem.requestFullscreen();
}
Этот код проверяет наличие метода requestFullscreen() перед его вызовом.
Уведомление
При успешном переходе в полноэкранный режим документ, содержащий элемент, получает событие fullscreenchange. При выходе из полноэкранного режима документ снова получает событие fullscreenchange. Обратите внимание, что событие fullscreenchange само по себе не содержит информации о переходе в или из полноэкранного режима, но если у документа есть ненулевой элемент fullscreenElement, значит вы находитесь в полноэкранном режиме.
Что делать, если запрос на полноэкранный режим не удался
Не гарантируется, что переход в полноэкранный режим всегда будет успешным. Например, элементы <iframe> требуют атрибута allowfullscreen, чтобы разрешить отображение их содержимого в полноэкранном режиме. Кроме того, некоторые виды контента, такие как оконные плагины, не могут быть представлены в полноэкранном режиме. Попытка перевести элемент, который не может отображаться в полноэкранном режиме (или его родитель или дочерний элемент), не сработает. Вместо этого, элемент, запросивший полноэкранный режим, получит событие fullscreenerror. Если запрос на полноэкранный режим не удался, Firefox запишет сообщение об ошибке в консоль браузера, объясняя причину неудачи. В Chrome и более новых версиях Opera такого предупреждения не генерируется.
Примечание: Запросы на полноэкранный режим должны выполняться внутри обработчика событий, в противном случае они будут отклонены.
Выход из полноэкранного режима
Пользователь всегда может выйти из полноэкранного режима; см. Рекомендации для пользователей. Вы также можете сделать это программно, вызвав метод Document.exitFullscreen().
Дополнительная информация
Объект Document предоставляет дополнительную информацию, которая может быть полезна при разработке полноэкранных веб-приложений:
-
Document.fullscreenElement/ShadowRoot.fullscreenElement -
Свойство
fullscreenElementуказывает на элементElement, который в настоящее время отображается в полноэкранном режиме. Если это ненулевой элемент, документ (или теневой DOM) находится в полноэкранном режиме. Если это null, документ (или теневой DOM) не находится в полноэкранном режиме. Document.fullscreenEnabled-
Свойство
fullscreenEnabledуказывает, разрешен ли в данный момент полноэкранный режим для документа.
Масштабирование области просмотра в мобильных браузерах
Некоторые мобильные браузеры в полноэкранном режиме игнорируют настройки мета-тега viewport и блокируют масштабирование пользователем; например, жест «приближение-отдаление» может не работать на странице в полноэкранном режиме, даже если в обычном режиме страница может масштабироваться с помощью этого же жеста.
Рекомендации для пользователей
Необходимо проинформировать пользователей о том, что они могут нажать клавишу Esc (или F11), чтобы выйти из полноэкранного режима.
Кроме того, переход на другую страницу, смену вкладок или переключение на другое приложение (например, с помощью Alt-Tab) также приводит к выходу из полноэкранного режима.
Пример
В этом примере видео отображается на веб-странице. Нажатие клавиши Return или Enter позволяет пользователю переключаться между оконным и полноэкранным режимами отображения видео.
Прослушивание нажатия клавиши Enter
После загрузки страницы выполняется этот код для установки обработчика события, отслеживающего нажатие клавиши Enter.
document.addEventListener(
"keydown",
(e) => {
if (e.key === "Enter") {
toggleFullScreen();
}
},
false,
);
Переключение в полноэкранный режим
Этот код вызывается при нажатии пользователем клавиши Enter, как показано выше.
function toggleFullScreen() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen();
} else if (document.exitFullscreen) {
document.exitFullscreen();
}
}
Код начинает с проверки значения атрибута fullscreenElement у элемента document. Если оно null, значит документ в данный момент в оконном режиме, и нам нужно переключиться в полноэкранный режим. Переключение в полноэкранный режим осуществляется вызовом Element.requestFullscreen().
Если полноэкранный режим уже активен (fullscreenElement не равно null), мы вызываем document.exitFullscreen().
Спецификации
| Спецификация |
|---|
| Fullscreen API # ref-for-dom-document-fullscreenenabled① |
| Fullscreen API # dom-document-fullscreen |
Совместимость с браузерами
| Десктоп | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Guide |
7115 | 7912 | 649 | 5815 | 16.46 | 7118 | 649 | 5014 |
16.4["Только доступно на iPad, не на iPhone.", "Показывается наложение кнопок, которое нельзя отключить. Свайп вниз закрывает полноэкранный режим, делая его непригодным для некоторых случаев использования, например, игр."]12Только доступно на iPad, не на iPhone. |
10.01.0 | 71≤37 |
| Десктоп | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Guide |
7120 | 12 | 6410 | 581512.1–15 | 16.46 | 7125 | 6410 | 501412.1–14 |
16.4["Только доступно на iPad, не на iPhone.", "Показывается наложение кнопок, которое нельзя отключить. Свайп вниз закрывает полноэкранный режим, делая его непригодным для некоторых случаев использования, например, игр."]12Только доступно на iPad, не на iPhone. |
10.01.5 | 714.4 |
api.Document.fullscreenEnabled
Таблицы BCD загружаются только в браузере
api.Document.fullscreen
Таблицы BCD загружаются только в браузере
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API/Guide