JavaScript全屏功能依赖Fullscreen API,须由用户手势触发;调用element.requestFullscreen()进入全屏,document.exitFullscreen()退出;通过document.fullscreenElement检测状态,并监听fullscreenchange事件响应变化。
JavaScript 实现全屏功能主要依靠浏览器提供的 Fullscreen API,它允许网页元素(如视频、画布或整个 body)进入和退出全屏模式。注意:该操作必须由用户手势(如点击、按键)触发,不能自动执行,否则会被浏览器拒绝。
调用目标元素的 requestFullscreen() 方法即可尝试进入全屏。现代浏览器基本支持,但需注意兼容性前缀(旧版 Chrome/Safari 用 webkitRequestFullscreen,Firefox 早期用 mozReq)。
uestFullScreen
Element.requestFullscreen()(标准方法),并做简单错误处理allowfullscreen)document.documentElement(即 html> 元素)来让整个页面进入全屏示例代码:
function enterFullscreen() {
const elem = document.documentElement;
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
}
// 绑定到按钮点击
document.getElementById('fs-btn').addEventListener('click', enterFullscreen);
通过 document.fullscreenElement 判断:若为非 null,表示当前有元素处于全屏;值为实际全屏的 DOM 元素。
document.fullscreenElement === null 表示未全屏fullscreenchange 事件,响应式更新 UI(如切换“退出全屏”按钮文字)webkitIsFullScreen、mozFullScreenElement,但现代开发中优先使用标准属性调用 document.exitFullscreen() 即可退出当前全屏状态。同样需兼容旧版本:
document.exitFullscreen()
document.webkitExitFullscreen()
document.mozCancelFullScreen()
document.msExitFullscreen()
示例:
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
全屏 API 受安全策略限制较多,实际使用中需留意:
TypeError
fullscreenchange 更新样式或逻辑document.fullscreenElement 变为 null,可借此清理状态