2015-09-18 18 views
5

Chcę, aby moja gra HTML5 była odtwarzana w trybie pełnoekranowym po uruchomieniu. Kiedy robię to za pomocą przycisku onclick, przechodzi on na pełny ekran. Ale kiedy używam window.onload, aby uruchomić pełnoekranowe przeładowanie, odpowiada on na konsoli Nie udało się wykonać 'requestFullScreen' w 'Element': API może zostać zainicjowane tylko gestem użytkownika. Używam chrome. Czy istnieje obejście tego problemu?Nie udało się wykonać polecenia "requestFullScreen" w "Elementu": interfejs API może zostać zainicjowany tylko gestem użytkownika.

Mój kod:

<!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> 

Odpowiedz

3

Wszelkie javascript api jest celowo w ten sposób chyba. Wyobraź sobie, że idziesz na stronę internetową i włącza się automatycznie w trybie pełnoekranowym, nie robiąc nic. Będziesz narażony na cały świat irytujących wyskakujących okienek i innych rzeczy, które nawet nie zamierzasz otworzyć. Tak więc każdy taki skrypt wymaga interakcji z użytkownikiem. Przejście do trybu pełnoekranowego bez interakcji użytkownika wydaje się bardzo niebezpieczne. Przykład, jeśli strona taka jak ta otworzy się w trybie pełnoekranowym: ktoś może nie wiedzieć, co się stało z ich pulpitem.

Jeśli nadal chcesz spróbować częściowe obejście może wtedy przyjrzeć się poniższym odpowiedź:

Partial WorkAround

+0

Proszę spojrzeć na inne odpowiedzi też w podany link, aby lepiej zrozumieć. – hunters30

Powiązane problemy