通过按下面的按钮,我可以启用和禁用全屏模式,但是在按f12键后,我不能禁用全屏模式。我引用了其他答案,他们只提供了一种检测窗口是否处于全屏模式的方法。我无法获得用于从全屏禁用全屏模式的代码(通过f11键制成)。我尝试通过代码触发f11,但没有成功。在所有浏览器中是否有解决方案?
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()
的方法,也没有用。
答案 0 :(得分:3)
F11 全屏模式是一种浏览器/操作系统功能,您无法通过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>