退出Chrome全屏-从JavaScript启动全屏



我正在使用下面的代码在Chrome中切换全屏模式。

除非我在启动Chrome时带有--start全屏标志,否则它的效果非常好。从那里看,它似乎在努力做什么;指示灯从"按[Esc]以退出全屏"变为"按[F11]以退出全屏幕",但窗口保持全屏。

我希望应用程序以全屏加载(例如在系统启动时(,但可以通过切换按钮退出/重新进入全屏。

有什么想法吗?

<html>
<head>
</head>
<body>
<input type="button" value="Toggle Fullscreen" onclick="ToggleFs()"></input>
<script type="text/javascript">
var ToggleFs = function() {
if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
} else if (document.documentElement.msRequestFullscreen) {
document.documentElement.msRequestFullscreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullscreen) {
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitCancelFullscreen) {
document.webkitCancelFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
}
</script>
</body>
</html>

我今天一直在讨论这个问题,发现如果您自己的站点没有使用requestFullscreen启用全屏模式,您就无法以编程方式退出全屏模式。您可以在点击事件上切换全屏,并检测按下F11时触发的全屏事件,但如果您尝试在没有调用requestFullscreen的情况下调用document.exitFullscreen(),则会引发错误。

这一点一开始没有意义,但背后有想法。用户可以随时按F11在浏览器中启用全屏模式,也可以使用--start-fullscreen标志启动浏览器。当浏览器处于全屏模式时,他们可以导航到任何网站,而不仅仅是停留在你的网站上。浏览器不允许网站以编程方式禁用用户的全屏模式并破坏他们的设置,这是有道理的。

最新更新