JavaScript全屏API_页面全屏控制

调用 requestFullscreen() 方法可在用户操作中触发全屏,作用于 document.documentElement 或指定元素,需处理浏览器前缀兼容;通过 exitFullscreen() 退出全屏;监听 fullscreenchange 事件可检测状态变化并更新 UI,使用时应遵循安全策略避免滥用。

JavaScript 全屏 API 提供了一种让网页元素(通常是整个页面或某个特定区域)进入和退出全屏模式的方法,适用于视频播放、游戏、演示等需要沉浸式体验的场景。使用这个 API 可以让用户通过编程方式控制浏览器的显示状态。

如何触发全屏模式

要让页面或某个元素进入全屏,可以调用 requestFullscreen() 方法。该方法必须在用户操作(如点击事件)中调用,否则会被浏览器阻止以防止滥用。

  • document.documentElement 调用可使整个页面全屏
  • 也可以对某个具体 DOM 元素调用,仅该元素进入全屏
  • 需注意不同浏览器前缀差异,如旧版 Chrome 使用 webkitRequestFullscreen
// 进入全屏
function enterFullscreen() {
  const elem = document.documentElement;
  if (elem.requestFullscreen) {
    elem.requestFullscreen();
  } else if (elem.webkitRequestFullscreen) { // Safari
    elem.webkitRequestFullscreen();
  } else if (elem.msRequestFullscreen) { // IE/Edge
    elem.msRequestFullscreen();
  }
}

退出全屏模式

退出全屏可通过 exitFullscreen() 方法实现,它作用于 document 对象,不能用于单个元素。

  • 调用后页面会恢复到正常视图
  • 同样存在浏览器兼容性前缀问题
// 退出全屏
function exitFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.webkitExitFullscreen) {
    document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) {
    document.msExitFullscreen();
  }
}

监听全屏状态变化

可以通过监听 fullscreenchange 事件来获知全屏状态是否发生变化,从而更新 UI 按钮或执行其他逻辑。

  • 事件在进入或退出全屏时都会触发
  • 可通过检查 document.fullscreenElement 判断当前是否有元素处于全屏
document.addEventListener('fullscreenchange', () => {
  if (document.fullscreenElement) {
    console.log('已进入全屏');
  } else {
    console.log('已退出全屏');
  }
});

基本上就这些。使用全屏 API 时要注意安全策略和用户体验,避免未经用户同意自动进入全屏。兼容性方面建议封装通用函数处理不同浏览器前缀。不复杂但容易忽略细节。