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();
}
});
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();
}
});
Puede lograr fácilmente eventos de enlace de clave usando Jquery.
Aquí puedes usar .keydown()
Lista de códigos de teclas del teclado
$(document).keydown(function(e) {
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.