2009-09-26 16 views

Antwort

92

Probieren Sie etwas wie folgt aus:

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

Vielen Dank für diese Gumbo. Es kam als erste Sache auf Google :) – dvLden

3

Denken Sie daran, dass Sie die Funktion @Gumbo posted im Popup-Fenster verwenden müssen ... So müssen Sie JQuery im Popup schließen und die Funktion dort ausführen, nicht die Fenster, das das Popup öffnet.

+1

Was ist Gumbo? (bedeutungsloser Abstand für Stackoverflow) –

+0

Maschine bezieht sich auf die Funktion, die Gumbo gepostet hat (die Sie akzeptiert haben). –

38

verwenden Es ist möglich, mit JS zu erreichen, ohne Verwendung von jQuery.

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

Ich verstehe, dass dies abgelehnt wird, weil die Frage nach jQuery gestellt wird, aber für diejenigen, die nach reinem JavaScript suchen, ist diese Antwort sehr hilfreich. Also 1 Stimme von mir. –

+4

Bedenken Sie, dass jQuery die Möglichkeit, reguläres JS zu verwenden, nicht entfernt. –

+0

Super. Vielen Dank! –

0

@Gumbo ‚s Antwort ist gut, aber oft müssen Sie dieses Verhalten aushängen, damit ich die one Ereignishandler verwenden vorschlagen:

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

ODER

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

und wenn Sie bereit um das Verhalten zu stoppen

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

event.key === "Escape"

Keine willkürlichen Zahlencodes mehr!

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

Mozilla Docs

Supported Browsers