HTML5全屏API为网页提供了进入全屏展示的能力,在实际开发中,我们需要先判断当前环境是否支持全屏操作,再执行后续的全屏逻辑,这时候就需要用到fullscreenEnabled属性。

fullscreenEnabled属性是什么
fullscreenEnabled是Document接口的一个只读属性,用于判断当前文档是否允许进入全屏模式。它不需要开发者手动调用方法,直接读取即可获取结果,返回值类型为布尔值。
该属性的判断逻辑会综合多个因素:首先是浏览器本身是否支持全屏API,其次是当前页面是否在允许全屏的上下文环境中,比如部分浏览器会限制iframe内的页面使用全屏功能,还有用户是否禁用了浏览器的全屏权限等。
如何使用fullscreenEnabled识别全屏支持
使用这个属性非常简单,直接访问document.fullscreenEnabled即可,不过需要注意不同浏览器的兼容性前缀问题,部分旧版本浏览器可能需要添加webkit、moz等前缀。
基础使用示例
下面是一个通用的全屏支持检测代码,兼容了不同浏览器的前缀情况:
// 兼容不同浏览器的fullscreenEnabled属性
function isFullscreenEnabled() {
// 优先使用标准属性
if (typeof document.fullscreenEnabled !== 'undefined') {
return document.fullscreenEnabled;
}
// 兼容webkit内核浏览器
if (typeof document.webkitFullscreenEnabled !== 'undefined') {
return document.webkitFullscreenEnabled;
}
// 兼容moz内核浏览器
if (typeof document.mozFullScreenEnabled !== 'undefined') {
return document.mozFullScreenEnabled;
}
// 兼容IE浏览器
if (typeof document.msFullscreenEnabled !== 'undefined') {
return document.msFullscreenEnabled;
}
// 都不支持则返回false
return false;
}
// 调用检测函数
if (isFullscreenEnabled()) {
console.log('当前环境支持全屏操作');
} else {
console.log('当前环境不支持全屏操作');
}
结合全屏切换的完整逻辑
在实际的全屏功能开发中,我们通常会先检测是否支持全屏,再执行进入全屏的操作,避免报错:
// 获取需要全屏展示的元素
const targetElement = document.getElementById('fullscreen-target');
// 进入全屏的函数
function enterFullscreen() {
// 先检测全屏支持
if (!isFullscreenEnabled()) {
alert('当前浏览器或环境不支持全屏功能');
return;
}
// 执行进入全屏的操作,同样需要兼容前缀
if (targetElement.requestFullscreen) {
targetElement.requestFullscreen();
} else if (targetElement.webkitRequestFullscreen) {
targetElement.webkitRequestFullscreen();
} else if (targetElement.mozRequestFullScreen) {
targetElement.mozRequestFullScreen();
} else if (targetElement.msRequestFullscreen) {
targetElement.msRequestFullscreen();
}
}
// 绑定按钮点击事件触发全屏
document.getElementById('fullscreen-btn').addEventListener('click', enterFullscreen);
fullscreenEnabled的常见误区
- 误区一:认为fullscreenEnabled为true就一定能进入全屏。实际上该属性只是判断环境是否支持,部分浏览器还要求全屏操作必须由用户主动触发,比如点击事件,不能自动执行全屏。
- 误区二:忽略iframe的限制。如果页面是嵌套在iframe中,且iframe没有设置allowfullscreen属性,那么fullscreenEnabled会返回false。
- 误区三:不处理浏览器前缀。旧版本的Chrome、Firefox等浏览器可能只支持带前缀的属性,直接使用标准属性会得到undefined,导致判断错误。
相关注意事项
除了fullscreenEnabled属性,全屏API还提供了其他相关的属性和事件,比如fullscreenElement可以获取当前处于全屏状态的元素,fullscreenchange事件可以监听全屏状态的变化,开发者可以结合这些API实现更完善的全屏功能。
另外需要注意,fullscreenEnabled属性的值可能会动态变化,比如用户修改了浏览器的权限设置,或者页面从iframe切换到顶层窗口,这时候属性值可能会发生改变,如果需要实时判断,可以在每次执行全屏操作前重新检测。
HTML5fullscreenEnabled全屏API全屏识别修改时间:2026-07-03 23:00:23