【发布时间】:2018-12-10 05:28:27
【问题描述】:
通过按下下面的按钮,我可以启用和禁用全屏模式,但在按下 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() 也没有工作。
【问题讨论】:
-
那么,您只是在使用 webkit 浏览器(如 Chrome)时遇到问题?
-
你@JaromandaX。我也想要 Mozilla 和 ie 中的解决方案
-
@JaromandaX 不。再一次,这个 API 的实现是一团糟。Gecko 做了 camelCase fullScreen,只有他们做...
-
抱歉,MDN 文档有误!! (这是第一次!)@Kaiido - 我不应该和你争论:p
-
哦,我经常出错,在 webkit-ms-o-moz-f[s||S] ApI(规范需要 fs,但我担心在我们到处都没有前缀之前还需要一些时间......)
标签: javascript events cross-browser