从JavaScript退出Chrome全屏模式--start-fullscreen

3
我正在使用以下代码在Chrome中切换全屏模式。
除非我使用--start-fullscreen标志启动Chrome,否则它运行得很好。从那里开始,它似乎正在尝试做某事;指示器从“按[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>

你有没有看过这个链接 https://dev59.com/e3E85IYBdhLWcg3wQxPG?我不确定你是否已经看过,但它可能会给你一些启示。 - undefined
@rule 我已经验证了脚本成功识别窗口是否处于全屏模式。问题在于,当使用上述标志启动时,document.exitFullscreen() 调用没有任何效果。 - undefined
2
@bstiffler582 你找到任何解决方案了吗?我也遇到了同样的问题。 - undefined
@N.F. 很遗憾,不是的。我相信我们最终在这个应用程序中使用了展示模式,但这也带来了一些麻烦... - undefined
我正要发布同样的问题。这个问题让我疯狂了。我花了几个小时试图弄清楚如何创建一个按钮,让用户能够轻松退出在使用--start-fullscreen启动Chrome时发生的全屏模式。 - undefined
这很有趣。也许我会换成Firefox或其他浏览器:https://stackoverflow.com/a/69262602/470749 - undefined
1个回答

1
我今天尝试了一下,发现如果全屏模式不是由你的网站使用requestFullscreen启用的,则无法以编程方式退出全屏模式。你可以在点击事件中切换全屏模式,并检测当按下F11时触发的全屏事件,但是如果您尝试在没有首先调用requestFullscreen的情况下调用document.exitFullscreen(),它将抛出一个错误。
这起初看起来没有意义,但背后有一定的考虑。用户可以随时通过按F11启用浏览器的全屏模式,并使用--start-fullscreen标志启动浏览器。在浏览器处于全屏模式时,他们可以访问任何网站,而不仅仅是您的网站。因此,浏览器不允许网站以编程方式禁用用户的全屏模式并干扰他们的设置是有道理的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接