I'm building a web application, and I need control over toggling full screen mode.
Now I have some code, that allows the user switching modes by clicking on a button:
The Button:
<BUTTON onclick='toggleFullScreen()' id='fullscreenbutton'>Switch full screen/BUTTON>
The screen switcher:
function toggleFullScreen() {
if ((document.fullScreenElement && document.fullScreenElement !== null) || (!document.mozFullScreen && !document.webkitIsFullScreen)) {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
}
Event listeners for changing button text when window state changes:
$(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', function(e){setButtonText();});
$(window).on('resize', function(e){setButtonText();});
The method setting button's text depends on the screen status:
function setButtonText(){
let buttonText = (!window.screenTop && !window.screenY) ? "Switch full screen" : "Switch normal screen";
$("#fullscreenbutton").text(buttonText);
}
It works more or less. My problem is:
If the user switches full screen mode "manually" by pressing F11, my button cannot cancel it.
How can I cancel full screen mode switched by pressing F11 with JavaScript (or jQuery), or how to disable switching full screen mode by pressing F11?