20

我想让我的 HTML5 游戏在启动时全屏显示。当我通过单击按钮执行此操作时,它会全屏显示。但是当我使用 window.onload 使其进入全屏加载时,它在控制台上回复 Failed to execute 'requestFullScreen' on 'Element': API 只能由用户手势启动。我正在使用铬。有解决方法吗?

我的代码:

    <!DOCTYPE html>
    <html>
    <head>
<script>
window.onload = openfullscreen();

function launchIntoFullscreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}

function openfullscreen() {

launchIntoFullscreen(document.documentElement);
}

function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
window.close();
}

function fix() {
var screenwidth = screen.width;
var screenhei = screen.height;
document.getElementById('ifam').width = screenwidth;
document.getElementById('ifam').height = screenhei;
}
</script>
<style>
  #ifam {
    position:fixed;
    left:0%;
    top:0%;
    z-index:-1;
  }
  #fullscreen {
    position:fixed;
    left:0%;
    top:0%;
    z-index:1;
  }
  </style>
  </head>
  <body onload="fix()">
  <div id="fullscreen">
  <button onclick="openfullscreen()">Open</button>
  <button onclick="exitFullscreen()">Exit</button>
  </div>
  <iframe id="ifam" src="lchosser.html"></iframe>
  </body>
  </html>
4

1 回答 1

7

我猜任何 javascript api 都是故意以这种方式制作的。想象一下,如果您访问一个网站,它会自动全屏打开,而您根本不需要做任何事情。您将接触到令人讨厌的弹出窗口和其他您甚至打算打开的东西的整个世界。所以任何这样的脚本都需要用户交互才能工作。在没有用户交互的情况下切换到全屏感觉就像是恶意的意图。例如,如果像这样的网站以全屏模式打开:虚拟桌面有人可能会对他们的桌面刚刚发生的事情感到困惑。

如果您仍想尝试部分解决方法,请查看以下答案:

部分解决方法

于 2015-09-18T02:48:43.943 回答