JavaScript实现HTML5全屏模式及浏览器兼容处理

作者:像素猫

时间:2026-10-30

浏览:486

本文详解如何利用JavaScript调用HTML5全屏API,针对Gecko与WebKit内核的差异进行兼容处理。重点解析requestFullscreen系列方法的使用,以及解决WebKit全屏后元素尺寸未自动拉伸的问题,通过CSS强制宽高100%实现统一的全屏视觉效果。

文章目录

HTML5全屏API基础与浏览器前缀差异

若需将指定元素(例如视频标签)置于全屏模式展示,可调用该元素的 requestFullscreen() 方法。需注意不同浏览器内核的实现差异:Gecko内核对应的方法为 element.mozRequestFullScreen(),而WebKit内核则使用 element.webkitRequestFullscreen()。

以下是一个具体的应用示例:


var elem = document.getElementById("myvideo");
if (elem.requestFullscreen) {
 elem.requestFullscreen();		//IE浏览器
} else if (elem.mozRequestFullScreen) {
 elem.mozRequestFullScreen();			//火狐浏览器
} else if (elem.webkitRequestFullscreen) {
 elem.webkitRequestFullscreen();			//谷歌浏览器
}

在此阶段,Gecko与WebKit内核展现出显著差异:Gecko会自动为全屏元素注入CSS样式,使其宽度与高度均设为100%以铺满屏幕;WebKit则保持元素原始尺寸并居中显示,四周留黑。为使WebKit环境下达到与Gecko一致的全屏效果,必须手动为元素添加CSS规则,强制设置其宽度与高度均为100%。

全屏切换逻辑与退出机制实现


function toggleFullScreen() {
 if (!document.fullscreenElement &&  // alternative standard method
   !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods
  if (document.documentElement.requestFullscreen) {
   document.documentElement.requestFullscreen();
  } else if (document.documentElement.mozRequestFullScreen) {
   document.documentElement.mozRequestFullScreen();
  } else if (document.documentElement.webkitRequestFullscreen) {
   document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
  }
 } else {
  if (document.cancelFullScreen) {
   document.cancelFullScreen();
  } else if (document.mozCancelFullScreen) {
   document.mozCancelFullScreen();
  } else if (document.webkitCancelFullScreen) {
   document.webkitCancelFullScreen();
  }
 }
}

代码逻辑首先检测 document 对象的 fullscreenElement 属性(同时检查带有 -moz- 和 -webkit- 前缀的对应属性)。若该属性值为 null,表明当前处于窗口模式,需切换至全屏状态。此时应调用 element.mozRequestFullScreen() 或 webkitRequestFullscreen(),具体调用哪个方法取决于当前浏览器所支持的功能。

若全屏模式已激活(即 fullscreenElement 属性非空),则需调用 document.mozCancelFullScreen() 或 webkitCancelFullScreen() 退出全屏,具体方法的选择同样依赖于当前浏览器的类型。

以上即为关于JavaScript控制HTML5全屏模式及浏览器兼容问题的完整解析。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章