„requestFullScreen“ konnte nicht auf „Element“ ausgeführt werden: Die API kann nur durch eine Benutzergeste initiiert werden [duplicate]

Lesezeit: 2 Minuten

Ich möchte, dass mein HTML5-Spiel beim Start in den nativen Vollbildmodus wechselt. Wenn ich dies mit einem Klick auf eine Schaltfläche mache, wird der Vollbildmodus angezeigt. Aber wenn ich window.onload verwende, um es beim Laden in den Vollbildmodus zu versetzen, antwortet es auf der Konsole. Fehler beim Ausführen von „requestFullScreen“ auf „Element“: Die API kann nur durch eine Benutzergeste initiiert werden. Ich verwende Chrom. Gibt es eine Problemumgehung?

Mein 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="https://stackoverflow.com/questions/32642865/lchosser.html"></iframe>
  </body>
  </html>

  • Problem war User clicked, full screen was triggered using requestFullscreen. Aber wenn es im Vollbildmodus ist, ist das full screen was triggered again due to application refresh. Verwendung einer state variable zu erkennen already in full screen Löst das Problem, dafür müssen wir uns das anhören exitFullscreen auch wie beim Drücken der Escape-Taste usw.

    – Manohar Reddy Poreddy

    10. September 2022 um 6:15 Uhr


Benutzer-Avatar von Hunters30
Jäger30

Ich vermute, dass jede Javascript-API absichtlich auf diese Weise erstellt wurde. Stellen Sie sich vor, Sie gehen auf eine Website und sie wird automatisch im Vollbildmodus angezeigt, ohne dass Sie etwas tun müssen. Sie wären einer ganzen Welt lästiger Popups und anderer Dinge ausgesetzt, die Sie nicht einmal öffnen möchten. Damit ein solches Skript funktioniert, ist eine Benutzerinteraktion erforderlich. Der Wechsel zum Vollbildmodus ohne Benutzerinteraktion fühlt sich sehr nach böswilliger Absicht an. Beispiel, wenn eine Website wie diese im Vollbildmodus geöffnet wird: Virtueller Desktop Jemand ist möglicherweise ziemlich verwirrt darüber, was gerade mit seinem Desktop passiert ist.

Wenn Sie dennoch eine teilweise Problemumgehung versuchen möchten, schauen Sie sich vielleicht die folgende Antwort an:

Teilweise Problemumgehung

  • Bitte schauen Sie sich auch andere Antworten unter dem bereitgestellten Link an, um es besser zu verstehen.

    – Jäger30

    18. September 2015 um 2:50

1452240cookie-check„requestFullScreen“ konnte nicht auf „Element“ ausgeführt werden: Die API kann nur durch eine Benutzergeste initiiert werden [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy