如何在JavaScriptpopup窗口上处理ESC keydown

我有一个JavaScript的window.openpopup窗口,我想popupclosures自己当用户按ESC键。 我不知道如何钩住keydown事件(以及什么对象?),以便我可以捕获ESC键。

我正在使用jQuery。

尝试这样的事情:

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

使用JS可以实现而不使用jQuery。

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

请记住,您必须使用popup窗口中张贴的函数@Gumbo …因此,您需要在popup窗口中包含JQuery,并在那里执行函数,而不是打开popup窗口的窗口。

您可以使用Jquery轻松实现绑定键事件 。

在这里你可以使用.keydown()

键盘键代码列表

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

@Gumbo的回答很好,但是通常你需要解开这个行为,所以我build议使用one事件处理程序:

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

要么

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

当准备好停止行为时

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