Sto provando a creare un pulsante che attiva/disattiva lo schermo HTML5 a schermo intero su un determinato sito Web.HTML5 API FullScreen con JavaScript
Dopo aver letto un sacco di documentazione, sembra che ci siano ancora alcune incongruenze tra il modo in cui i browser trattano certe proprietà per esso.
Sono andato per tipo di approccio "cross-browser" che fa funziona in Firefox e Safari/MacOS, funziona parzialmente in Safari/Windows e completamente non riesce a funzionare in Chrome e Opera.
alcuni frammenti di codice castrati:
// 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);
}
Almeno in FF24, è mozFullScreenEnabled (schermo con maiuscole) – Narretz
Inoltre, _isFullScreen restituisce se un browser è in grado di visualizzare a schermo intero, non se a schermo intero è attualmente attivo. È necessario ascoltare document.fullscreenElement e le varianti del browser per questo. – Narretz