¿Es posible hacer que el navegador pase a pantalla completa al hacer clic en un botón en la página web y deshabilitar las teclas del teclado, a través de JavaScript o PHP?

En el lenguaje de script del lado del servidor como PHP, no puede controlar ningún evento clave del lado del cliente.

Además, no puede deshabilitar la tecla Esc mientras está en pantalla completa. Por razones de seguridad, el usuario siempre puede salir del modo de pantalla completa presionando la tecla Esc o F11. Además, ni siquiera es posible detectar que se presionó la tecla Esc mientras está en modo de pantalla completa.

Por favor lea – Estándar de API de pantalla completa

Script Javascript para abrir el modo de pantalla completa y cerrar con un clic de botón

Aquí hay cosas que irán a pantalla completa

(función () {

var

fullScreenApi = {

supportsFullScreen: false,

isFullScreen: function () {return false; },

requestFullScreen: function () {},

cancelFullScreen: function () {},

fullScreenEventName: ”,

prefijo: ”

},

browserPrefixes = ‘webkit moz o ms khtml’.split (‘ ‘);

// busca soporte nativo

if (typeof document.cancelFullScreen! = ‘undefined’) {

fullScreenApi.supportsFullScreen = true;

} más {

// busca soporte de pantalla completa por prefijo de proveedor

for (var i = 0, il = browserPrefixes.length; i <il; i ++) {

fullScreenApi.prefix = browserPrefixes [i];

if (typeof document [fullScreenApi.prefix + ‘CancelFullScreen’]! = ‘undefined’) {

fullScreenApi.supportsFullScreen = true;

rotura;

}

}

}

// actualiza los métodos para hacer algo útil

if (fullScreenApi.supportsFullScreen) {

fullScreenApi.fullScreenEventName = fullScreenApi.prefix + ‘fullscreenchange’;

fullScreenApi.isFullScreen = function () {

switch (this.prefix) {

caso ”:

return document.fullScreen;

caso ‘webkit’:

return document.webkitIsFullScreen;

defecto:

documento de devolución [this.prefix + ‘FullScreen’];

}

}

fullScreenApi.requestFullScreen = function (el) {

return (this.prefix === ”)? el.requestFullScreen (): el [this.prefix + ‘RequestFullScreen’] ();

}

fullScreenApi.cancelFullScreen = function (el) {

return (this.prefix === ”)? document.cancelFullScreen (): documento [this.prefix + ‘CancelFullScreen’] ();

}

}

// plugin jQuery

if (typeof jQuery! = ‘undefined’) {

jQuery.fn.requestFullScreen = function () {

devuelve this.each (function () {

if (fullScreenApi.supportsFullScreen) {

fullScreenApi.requestFullScreen (this);

}

});

};

}

// exportar api

window.fullScreenApi = fullScreenApi;

}) ();

var someElement = document.getElementById (‘fullScreenstuff’);

var myButton = document.getElementById (‘myButton’);

var eButton = document.getElementById (‘eButton’);

if (fullScreenApi.supportsFullScreen) {

// manejar el clic del botón

myButton.addEventListener (‘click’, function () {

fullScreenApi.requestFullScreen (someElement);

}, cierto);

// manejar el clic del botón

eButton.addEventListener (‘click’, function () {

window.fullScreenApi.cancelFullScreen (someElement);

}, cierto);

}

document.onkeydown = function (evt) {

evt = evt || window.event;

var isEscape = false;

if (“clave” en evt) {

isEscape = (evt.key == “Escape” || evt.key == “Esc”);

} más {

isEscape = (evt.keyCode == 27);

}

if (isEscape) {

// Esto tampoco funcionará cuando esté en modo de pantalla completa

if (evt.stopPropagation) evt.stopPropagation ();

if (evt.cancelBubble! = null) evt.cancelBubble = verdadero;

}

};