Próbuję zrobić przycisk, który przełączy (wł/wył) pełny ekran HTML5 na określonej stronie internetowej.Interfejs API HTML5 FullScreen z JavaScriptem
Po przeczytaniu dużej dokumentacji, wydaje się, że nadal istnieją pewne niespójności między sposobami traktowania przeglądarek przez określone właściwości.
Poszedłem na coś w stylu "przeglądarki", które działa w Firefoksie i Safari/MacOS, działa częściowo w Safari/Windows i zupełnie nie działa w Chrome i Operze.
Niektóre wykastrowane fragmenty kodu:
// class init
initialize: function() {
this.elmButtonFullscreen = $('fullscreen');
this.elmButtonFullscreen.on('click', this.onClickFullscreen.bindAsEventListener(this));
},
// helper methods
_launchFullScreen: function(element) {
if(element.requestFullScreen) { element.requestFullScreen(); }
else if(element.mozRequestFullScreen) { element.mozRequestFullScreen(); }
else if(element.webkitRequestFullScreen) { element.webkitRequestFullScreen(); }
},
_cancelFullScreen: function() {
if(document.cancelFullScreen) { document.cancelFullScreen(); }
else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); }
else if(document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); }
},
_isFullScreen: function() {
fullScreen = document.fullscreenEnabled || document.mozFullscreenEnabled || document.webkitFullscreenEnabled ? true : false;
if(this.debug) console.log('Fullscreen enabled? ' + fullScreen);
return fullScreen;
},
// callbacks
onClickFullscreen: function(e) {
e.stop();
if(this._isFullScreen()) this._cancelFullScreen();
else this._launchFullScreen(document.documentElement);
}
Przynajmniej w FF24, jest to mozFullScreenEnabled (ekran z kapitałem s) – Narretz
Również nie, to jest _isFullScreen powraca, jeśli przeglądarka jest w stanie wyświetlać pełnoekranowy, a nie jeśli pełny ekran jest aktywny. Musisz posłuchać document.fullscreenElement i wariantów przeglądarki. – Narretz