全屏 API
adds methods to present a specific
元素
(and its descendants) in full-screen mode, and to exit full-screen mode once it is no longer needed. This makes it possible to present desired content—such as an online game—using the user's entire screen, removing all browser user interface elements and other applications from the screen until full-screen mode is shut off.
See the article 全屏 API 指南 for details on how to use the API.
注意: Support for this API varies somewhat across browsers, with many requiring vendor prefixes and/or not implementing the latest specification. See the 浏览器兼容性 section below for details on support for this API. You may wish to consider using a library such as Fscreen for vendor agnostic access to the Fullscreen API.
The Fullscreen API has no interfaces of its own. Instead, it augments several other interfaces to add the methods, properties, and event handlers needed to provide full-screen functionality. These are listed in the following sections.
The Fullscreen API adds methods to the
Document
and
元素
interfaces to allow turning off and on full-screen mode.
Document.exitFullscreen()
Promise
which is resolved once full-screen mode has been completely shut off.
Element.requestFullscreen()
Promise
which is resolved once full-screen mode has been activated.
Document
interface provides properties that can be used to determine if full-screen mode is supported and available, and if full-screen mode is currently active, which element is using the screen.
DocumentOrShadowRoot.fullscreenElement
fullscreenElement
property tells you the
元素
that's currently being displayed in full-screen mode on the DOM (or shadow DOM). If this is
null
, the document is not in full-screen mode.
document.fullscreenEnabled
fullscreenEnabled
property tells you whether or not it is possible to engage full-screen mode. This is
false
if full-screen mode is not available for any reason (such as the
"fullscreen"
feature not being allowed, or full-screen mode not being supported).
The Fullscreen API defines two events which can be used to detect when full-screen mode is turned on and off, as well as when errors occur during the process of changing between full-screen and windowed modes. Event handlers for these events are available on the
Document
and
元素
接口。
注意:
These event handler properties are
not
available as HTML content attributes. In other words, you cannot specify event handlers for
fullscreenchange
and
fullscreenerror
in the HTML content. They must be added by JavaScript code.
Document.onfullscreenchange
fullscreenchange
event that's sent to a
Document
when that document is placed into full-screen mode, or when that document exits full-screen mode. This handler is called only when the entire document is presented in full-screen mode.
Document.onfullscreenerror
fullscreenerror
event that gets sent to a
Document
when an error occurs while trying to enable or disable full-screen mode for the entire document.
Element.onfullscreenchange
fullscreenchange
event is sent to the element, indicating that the element has been placed into, or removed from, full-screen mode.
Element.onfullscreenerror
fullscreenerror
event when sent to an element which has encountered an error while transitioning into or out of full-screen mode.
Document.fullscreen
true
if the document has an element currently being displayed in full-screen mode; otherwise, this returns
false
.
注意:
使用
fullscreenElement
property on the
Document
or
ShadowRoot
instead; if it's not
null
, then it's an
元素
currently being displayed in full-screen mode.
The Fullscreen API defines two events which can be used to detect when full-screen mode is turned on and off, as well as when errors occur during the process of changing between full-screen and windowed modes.
fullscreenchange
Document
or
元素
when it transitions into or out of full-screen mode.
fullscreenerror
Document
or
元素
if an error occurs while attempting to switch it into or out of full-screen mode.
FullscreenOptions
requestFullscreen()
.
The availability of full-screen mode can be controlled using
Feature Policy
. The full-screen mode feature is identified by the string
"fullscreen"
, with a default allow-list value of
"self"
, meaning that full-screen mode is permitted in top-level document contexts, as well as to nested browsing contexts loaded from the same origin as the top-most document.
见 Using Feature Policy to learn more about using Feature Policy to control access to an API.
Users can choose to exit full-screen mode simply by pressing the ESC (或 F11 ) key, rather than waiting for the site or app to programmatically do so. Make sure you provide, somewhere in your user interface, appropriate user interface elements that inform the user that this option is available to them.
注意: Navigating to another page, changing tabs, or switching to another application using any application switcher (or Alt - Tab ) will likewise exit full-screen mode.
In this example, a video is presented in a web page. Pressing the 返回 or Enter key lets the user toggle between windowed and full-screen presentation of the video.
When the page is loaded, this code is run to set up an event listener to watch for the Enter key.
document.addEventListener("keypress", function(e) {
if (e.keyCode === 13) {
toggleFullScreen();
}
}, false);
This code is called by the event handler above when the user hits the Enter key.
function toggleFullScreen() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen();
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
}
}
}
This starts by looking at the value of the
document
's
fullscreenElement
attribute. In a real-world deployment, at this time, you'll want to check for prefixed versions of this (
mozFullScreenElement
,
msFullscreenElement
,或
webkitFullscreenElement
, for example). If the value is
null
, the document is currently in windowed mode, so we need to switch to full-screen mode; otherwise, it's the element that's currently in full-screen mode. Switching to full-screen mode is done by calling
Element.requestFullscreen()
在
<video>
元素。
If full-screen mode is already active (
fullscreenElement
不是
null
), we call
exitFullscreen()
在
document
to shut off full-screen mode.
| 规范 | 状态 |
|---|---|
| 全屏 API | 实时标准 |
Document.fullscreen
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
fullscreen
弃用
|
Chrome
71
|
Edge
≤79
|
Firefox
64
|
IE 不支持 No |
Opera
58
|
Safari
6
Alternate Name
|
WebView Android
71
|
Chrome Android
71
|
Firefox Android
64
|
Opera Android
50
|
Safari iOS
6
Alternate Name
|
Samsung Internet Android
10.0
|
完整支持
不支持
弃用。不要用于新网站。
用户必须明确启用此特征。
使用非标名称。
Document.fullscreenElement
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
fullscreenElement
|
Chrome
53
Prefixed
|
Edge
≤18
Prefixed
|
Firefox
64
|
IE
Yes
Prefixed
|
Opera
40
Prefixed
|
Safari
Yes
Prefixed
|
WebView Android
53
Prefixed
|
Chrome Android
53
Prefixed
|
Firefox Android
64
|
Opera Android
41
Prefixed
|
Safari iOS
部分支持
12
Alternate Name
|
Samsung Internet Android
6.0
Prefixed
|
完整支持
部分支持
见实现注意事项。
用户必须明确启用此特征。
使用非标名称。
要求使用供应商前缀或不同名称。
Document.fullscreenEnabled
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
fullscreenEnabled
|
Chrome
45
|
Edge 12 |
Firefox
64
|
IE
11
Alternate Name
|
Opera Yes | Safari ? |
WebView Android
45
|
Chrome Android
45
|
Firefox Android
64
|
Opera Android Yes | Safari iOS ? |
Samsung Internet Android
5.0
|
完整支持
兼容性未知
用户必须明确启用此特征。
使用非标名称。
要求使用供应商前缀或不同名称。
Document.exitFullscreen
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
exitFullscreen
|
Chrome
45
|
Edge 12 |
Firefox
64
|
IE
11
Alternate Name
|
Opera
15
Prefixed
|
Safari
5.1
Prefixed
|
WebView Android
45
|
Chrome Android
45
|
Firefox Android
64
|
Opera Android Yes | Safari iOS 不支持 No |
Samsung Internet Android
5.0
|
返回
Promise
|
Chrome 71 | Edge 79 | Firefox 64 | IE 不支持 No | Opera ? | Safari ? | WebView Android 71 | Chrome Android 71 | Firefox Android 64 | Opera Android ? | Safari iOS 不支持 No | Samsung Internet Android 10.0 |
完整支持
不支持
兼容性未知
用户必须明确启用此特征。
使用非标名称。
要求使用供应商前缀或不同名称。
Element.requestFullscreen
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
requestFullscreen
|
Chrome
69
|
Edge
79
|
Firefox
64
|
IE
11
Prefixed
|
Opera
58
|
Safari
6
Prefixed
|
WebView Android
69
|
Chrome Android
69
|
Firefox Android
64
|
Opera Android
50
|
Safari iOS
6
Prefixed
|
Samsung Internet Android
10.0
|
选项
参数
|
Chrome 71 | Edge 79 | Firefox 64 | IE 不支持 No | Opera ? | Safari ? | WebView Android 71 | Chrome Android 71 | Firefox Android 64 | Opera Android ? | Safari iOS ? | Samsung Internet Android 10.0 |
返回
Promise
|
Chrome 71 | Edge 79 | Firefox 64 | IE 不支持 No | Opera 不支持 No | Safari 不支持 No | WebView Android 71 | Chrome Android 71 | Firefox Android 64 | Opera Android 不支持 No | Safari iOS 不支持 No | Samsung Internet Android 10.0 |
完整支持
不支持
兼容性未知
见实现注意事项。
用户必须明确启用此特征。
使用非标名称。
要求使用供应商前缀或不同名称。
Element.requestFullscreen()
Document.exitFullscreen()
Document.fullscreen
Document.fullscreenElement
:fullscreen
,
::backdrop
allowfullscreen