2009-09-26 110 views

Respuesta

92

Pruebe algo como esto:

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

Gracias gumbo para esto. Surgió como lo primero en Google :) – dvLden

3

Recuerde que debe utilizar la función @Gumbo posted en la ventana emergente ventana ... Así que tendrá que incluir jQuery en la ventana emergente y ejecutar la función existe, no el ventana que abre la ventana emergente.

+1

¿Qué es Gumbo? (espaciado sin sentido para Stackoverflow) –

+0

La máquina se refiere a la función que publicó Gumbo (que usted aceptó). –

38

Es posible lograr con JS Sin usar jQuery.

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

Entiendo que esto es rechazado porque la pregunta es por jQuery, pero para aquellos que buscan JavaScript puro, esta respuesta es muy útil. Así que 1 voto de mi parte. –

+4

Tenga en cuenta que jQuery no elimina la posibilidad de utilizar JS normal. –

+0

Impresionante. ¡Gracias un montón! –

0

@Gumbo 's respuesta es buena, pero a menudo es necesario para desenganchar este comportamiento por lo que sugiero utilizar el manejador de eventos one:

$(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'); 
0

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(); 
    } 
}); 

Mozilla Docs

Supported Browsers

Cuestiones relacionadas