如何强制我的 Chrome 浏览器接受 .requestFullscreen()?

How to force my Chrome browser to accept .requestFullscreen()?

我正在为自己编写一个应用程序,我需要通过 JavaScript 自动进入全屏(今天我模拟了 F11 的按下,这通常有效,但并非总是有效)。

我想使用 .requestFullscreen()(通过 screenfull.js)但我得到

Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.

这是可以理解的(出于安全/垃圾邮件/可用性的原因)并且在很多页面上都提到了。

现在,由于这是我 运行 在我的 Chrome 浏览器上的应用程序,我希望能够在我的浏览器中允许此请求。 这是 Chrome 的可能设置吗?

您可以使用自助服务终端模式:

在 Windows 上:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --chrome --fullscreen --kiosk http://10.20.30.40/page/

在 Linux

chrome  --chrome --fullscreen --kiosk http://10.20.30.40/page/

全屏 api 有点令人困惑,因为到目前为止,还没有浏览器接受纯 "unprefixed" 版本。 Mozilla 对全屏有很好的解释 api here,并列出了适当的前缀。

所以要在 Chrome 中获得全屏,您实际上需要调用 .webkitRequestFullscreen()。如果你想支持多种浏览器,你需要使用 if-else 块来确保你拥有所有正确的前缀,如下所示:

if (elem.requestFullscreen) {
    elem.requestFullscreen();
  } else if (elem.webkitRequestFullScreen) {
    elem.webkitRequestFullScreen();
  } else if (elem.mozRequestFullScreen) {
    elem.mozRequestFullScreen();
  } else if (elem.msRequestFullscreen) {
    elem.msRequestFullscreen();
  }

这很丑陋,但不幸的是这是必要的。您还需要为退出全屏添加适当的前缀,以及您可能应用的任何 css。您可能会看到的最后一个错误是 webkit 浏览器不会在全屏模式下以全尺寸显示元素,因此您需要将以下内容添加到样式表中。

-webkit-full-screen {
  width: 100%;
  height: 100%;
}