web-dev-qa-db-fra.com

Impossible d'exécuter 'requestFullScreen' sur 'Element': l'API ne peut être lancée que par un geste de l'utilisateur

Je veux que mon jeu HTML5 passe en plein écran natif au lancement. Quand je fais ça avec un bouton onclick, ça passe en plein écran. Mais lorsque j'utilise window.onload pour le faire passer en plein écran, il répond sur la console. Échec de l'exécution de "requestFullScreen" sur "Element": l'API ne peut être lancée que par un geste de l'utilisateur. J'utilise du chrome. Y a-t-il une solution à cela?

Mon code:

    <!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>
12
Tae Hagen

Toute API javascript est intentionnellement créée de cette façon, je suppose. Imaginez simplement que vous alliez sur un site Web et qu'il s'allume automatiquement en plein écran sans rien faire du tout. Vous seriez exposé à tout un monde de popups ennuyeux et d'autres choses que vous avez même l'intention d'ouvrir. Un tel script nécessite donc une interaction de l'utilisateur pour fonctionner. Passer en plein écran sans interaction avec l'utilisateur ressemble beaucoup à une intention malveillante. Exemple si un site comme celui-ci s'est ouvert en plein écran: Virtual Desktop quelqu'un peut être assez confus de ce qui vient de se passer sur son bureau.

Si vous souhaitez toujours essayer une solution de contournement partielle, jetez un œil à la réponse suivante:

Contournement partiel

2
hunters30