我想让我的HTML5游戏在发行时全屏呈现。当我用onclick按钮这样做时,它会全屏显示。但是当我使用窗口时。在'Element'上执行'requestFullScreen'失败:API只能通过用户手势启动。我使用chrome浏览器。有解决这个问题的方法吗?
我的代码: <!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>
我猜任何javascript api都是故意这样做的。想象一下,如果你去一个网站,它会自动全屏打开,而你什么都不做。你将面对一整个世界令人讨厌的弹出窗口和其他你甚至不想打开的东西。因此,任何这样的脚本都需要用户交互才能工作。在没有用户交互的情况下切换到全屏让人感觉很有恶意。例如,如果像这样的网站全屏打开:虚拟桌面,有些人可能会很困惑,他们的桌面刚刚发生了什么。
如果你仍然想尝试一个部分的解决方案,也许然后看看下面的答案:
部分解决方法