Element.requestFullscreen() - Web APIs 编辑
The Element.requestFullscreen()
method issues an asynchronous request to make the element be displayed in full-screen mode.
It's not guaranteed that the element will be put into full screen mode. If permission to enter full screen mode is granted, the returned Promise
will resolve and the element will receive a fullscreenchange
event to let it know that it's now in full screen mode. If permission is denied, the promise is rejected and the element receives a fullscreenerror
event instead. If the element has been detached from the original document, then the document receives these events instead.
Earlier implementations of the Fullscreen API would always send these events to the document rather than the element, and you may need to be able to handle that situation. Check Browser compatibility in [Page not yet written] for specifics on when each browser made this change.
Note: This method must be called while responding to a user interaction or a device orientation change; otherwise it will fail.
Syntax
var promise = Element.requestFullscreen(options);
Parameters
options
Optional- A
FullscreenOptions
object providing options that control the behavior of the transition to full-screen mode. Currently, the only option isnavigationUI
, which controls whether or not to show navigation UI while the element is in full-screen mode. The default value is"auto"
, which indicates that the browser should decide what to do.
Return value
A Promise
which is resolved with a value of undefined
when the transition to full screen is complete.
Exceptions
Rather than throw a traditional exception, the requestFullscreen()
procedure announces error conditions by rejecting the Promise
it has returned. The rejection handler receives one of the following exception values:
TypeError
- The
TypeError
exception may be delivered in any of the following situations:- The document containing the element isn't fully active; that is, it's not the current active document.
- The element is not contained by a document.
- The element is not permitted to use the
"fullscreen"
feature, either because of Feature Policy configuration or other access control features. - The element and its document are the same node.
Usage notes
Compatible elements
An element that you wish to place into full-screen mode has to meet a small number of simple requirements:
- It must be one of the standard HTML elements or
<svg>
or<math>
. - It is not a
<dialog>
element. - It must either be located within the top-level document or in an
<iframe>
which has theallowfullscreen
attribute applied to it.
Additionally, of course, the Feature Policy "fullscreen"
permission must be granted.
Detecting full-screen activation
You can determine whether or not your attempt to switch to full-screen mode is successful by using the Promise
returned by requestFullscreen()
, as seen in the Example below.
To learn when other code has toggled full-screen mode on and off, you should establish listeners for the fullscreenchange
event on the Document
. It's also important to listen for fullscreenchange
to be aware when, for example, the user manually toggles full-screen mode, or when the user switches applications, causing your application to temporarily exit full-screen mode.
Examples
This function toggles the first <video>
element found in the document into and out of full-screen mode.
function toggleFullscreen() {
let elem = document.querySelector("video");
if (!document.fullscreenElement) {
elem.requestFullscreen().catch(err => {
alert(`Error attempting to enable full-screen mode: ${err.message} (${err.name})`);
});
} else {
document.exitFullscreen();
}
}
If the document isn't already in full-screen mode—detected by looking to see if document.fullscreenElement
has a value—we call the video's requestFullscreen()
method. We don't need to do anything special if successful, but if the request fails, our promise's catch()
handler presents an alert with an appropriate error message.
If, on the other hand, full-screen mode is already in effect, we call document.exitFullscreen()
to disable full-screen mode.
You can see this example in action or view or remix the code on Glitch.
Specifications
Specification | Status | Comment |
---|---|---|
Fullscreen API The definition of 'Element.requestFullscreen()' in that specification. | Living Standard | Initial definition |
Browser compatibility
BCD tables only load in the browser
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论