tecla simular esc detectar deshabilitar javascript jquery popup

simular - detectar tecla esc javascript



Cómo manejar la tecla ESC en la ventana emergente de JavaScript (6)

Tengo una ventana emergente javascript window.open, y quiero que la ventana emergente se cierre solo cuando el usuario presiona la tecla ESC. No puedo encontrar la forma de enganchar el evento keydown (¿y en qué objeto?) Para poder capturar la tecla ESC.

Estoy usando jQuery.


event.key === "Escape"

¡No más códigos de números arbitrarios!

document.addEventListener(''keydown'', function(event) { const key = event.key; // const {key} = event; in ES6+ if (key === "Escape") { window.close(); } });

Documentos de Mozilla

Navegadores compatibles


Es posible lograr con JS sin usar jQuery.

window.onkeydown = function( event ) { if ( event.keyCode == 27 ) { console.log( ''escape pressed'' ); } };


La respuesta de @Gumbo es buena, pero a menudo necesitas desenganchar este comportamiento, por lo que te sugiero que uses el controlador de one evento:

$(document).one(''keydown'', function(e) { // ESCAPE key pressed if (e.keyCode == 27) { window.close(); } });

O

$(document).on(''keydown'', function(e) { // ESCAPE key pressed if (e.keyCode == 27) { window.close(); } });

y cuando esté listo para detener el comportamiento

$(document).off(''keydown'');


Pruebe algo como esto:

$(document).keydown(function(e) { // ESCAPE key pressed if (e.keyCode == 27) { window.close(); } });



Recuerde que debe usar la función @Gumbo publicada en la ventana emergente ... Por lo tanto, deberá incluir JQuery en la ventana emergente y ejecutar la función allí, no la ventana que abre la ventana emergente.