J'essaye de faire un bouton qui permuterait (on/off) HTML5 en plein écran sur un certain site Web. Après avoir lu beaucoup de documentation, il semble qu'il y ait encore des incohérences dans la façon dont les navigateurs traitent certaines propriétés pour cela.HTML5 FullScreen API basculer avec JavaScript
Je suis allé pour une sorte de "cross-browser" approche fonctionne dans Firefox et Safari/MacOS, fonctionne partiellement dans Safari/Windows et échoue totalement à travailler dans Chrome et Opera.
Quelques extraits de code castrés:
// 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);
}
Au moins en FF24, c'est mozFullScreenEnabled (écran avec majuscule s) – Narretz
Également pas, c'est _isFullScreen qui retourne si un navigateur est capable d'afficher plein écran, pas si plein écran est actuellement actif. Vous devez écouter document.fullscreenElement et les variantes du navigateur pour cela. – Narretz