通过 f11 启用全屏后通过 javascript 禁用全屏
After enabling full screen through f11 disable full screen through javascript
通过按下下面的按钮,我可以启用和禁用全屏模式,但在按下 f12 后,我无法禁用全屏 mode.I 参考了其他答案,他们只提供了一种检测是否 window 是否处于全屏模式。我无法从全屏(通过 f11 键生成)获取禁用全屏模式的代码。我尝试通过代码触发 f11,但没有 work.Is 有任何解决方案在所有浏览器中?
Html code:
<button id="fullbutton" width="60px" height="60px" alt="logo" onclick="toggleFullScreen(this)">On</button>
Javascript code :
function toggleFullScreen(element) {
//first part
if((window.fullScreen) || (window.outerWidth === screen.width && window.outerHeight == screen.height)) {
console.log("full screen is enabled ")
if (document.exitFullscreen)
document.exitFullscreen();
else if (document.msExitFullscreen)
document.msExitFullscreen();
else if (document.mozCancelFullScreen)
document.mozCancelFullScreen();
else if (document.webkitExitFullscreen)
document.webkitExitFullscreen();
}else {
//second part
if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen(); //for mozilla
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen
(Element.ALLOW_KEYBOARD_INPUT); //for chrome
} else if (document.documentElement.msRequestFullscreen) {
document.documentElement.msRequestFullscreen();
}//for ie
// document.getElementById('fullbutton').innerText = 'Off';
} else {
// document.getElementById('fullbutton').innerText = 'On';
if (document.msFullscreenElement) {
document.msExitFullscreen();
} //for ie
if (document.cancelFullScreen) {
document.cancelFullScreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen(); //for mozilla
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}//for chrome
}
console.log("full screen is not enabled ")
}
}
同样在通过 f11 启用后,如果我给出 document.webkitIsFullScreen
结果给出错误。我尝试给出 document.documentElement.webkitRequestFullscreen()
然后 document.webkitCancelFullScreen()
也没有用。
F11 全屏模式是一项 browser/OS 功能,您无法从 javascript 访问,就像您无法访问一样地址栏的显示方式。
你能控制的是Fullscreen API,这就是document.exitFullscreen
,或者document.fullscreenElement
的基础
但是这个全屏 API 和 F11 不一样。
Ps:实际上,有display-mode
media-query应该让我们知道它。
但目前似乎只有 FireFox 实现了它。
const query = matchMedia("all and (display-mode: fullscreen");
query.onchange = e => {
console.log(query.matches ? 'entered' : 'exited', 'fullscreen mode');
};
<p>From Firefox, try to enter or exit FullScreen mode</p>
通过按下下面的按钮,我可以启用和禁用全屏模式,但在按下 f12 后,我无法禁用全屏 mode.I 参考了其他答案,他们只提供了一种检测是否 window 是否处于全屏模式。我无法从全屏(通过 f11 键生成)获取禁用全屏模式的代码。我尝试通过代码触发 f11,但没有 work.Is 有任何解决方案在所有浏览器中?
Html code:
<button id="fullbutton" width="60px" height="60px" alt="logo" onclick="toggleFullScreen(this)">On</button>
Javascript code :
function toggleFullScreen(element) {
//first part
if((window.fullScreen) || (window.outerWidth === screen.width && window.outerHeight == screen.height)) {
console.log("full screen is enabled ")
if (document.exitFullscreen)
document.exitFullscreen();
else if (document.msExitFullscreen)
document.msExitFullscreen();
else if (document.mozCancelFullScreen)
document.mozCancelFullScreen();
else if (document.webkitExitFullscreen)
document.webkitExitFullscreen();
}else {
//second part
if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen(); //for mozilla
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen
(Element.ALLOW_KEYBOARD_INPUT); //for chrome
} else if (document.documentElement.msRequestFullscreen) {
document.documentElement.msRequestFullscreen();
}//for ie
// document.getElementById('fullbutton').innerText = 'Off';
} else {
// document.getElementById('fullbutton').innerText = 'On';
if (document.msFullscreenElement) {
document.msExitFullscreen();
} //for ie
if (document.cancelFullScreen) {
document.cancelFullScreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen(); //for mozilla
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}//for chrome
}
console.log("full screen is not enabled ")
}
}
同样在通过 f11 启用后,如果我给出 document.webkitIsFullScreen
结果给出错误。我尝试给出 document.documentElement.webkitRequestFullscreen()
然后 document.webkitCancelFullScreen()
也没有用。
F11 全屏模式是一项 browser/OS 功能,您无法从 javascript 访问,就像您无法访问一样地址栏的显示方式。
你能控制的是Fullscreen API,这就是document.exitFullscreen
,或者document.fullscreenElement
的基础
但是这个全屏 API 和 F11 不一样。
Ps:实际上,有display-mode
media-query应该让我们知道它。
但目前似乎只有 FireFox 实现了它。
const query = matchMedia("all and (display-mode: fullscreen");
query.onchange = e => {
console.log(query.matches ? 'entered' : 'exited', 'fullscreen mode');
};
<p>From Firefox, try to enter or exit FullScreen mode</p>