2009-09-26 7 views
37

javascript window.openポップアップがあり、ユーザーがESCキーを押したときにポップアップを閉じるようにします。どのようにkeydownイベント(そしてどのオブジェクトにフックするか)を把握することができないので、ESCキーを捕まえることができます。javascriptポップアップウィンドウでESC keydownを処理する方法

私はjQueryを使用しています。

答えて

92

このような何かを試してみてください:

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

あなたはこのためにガンボありがとうございました。それはGoogleの最初のものとして登場した:) – dvLden

3

を使用すると、ポップアップ・ウィンドウに機能@Gumbo postedを使用しなければならないことに注意してください...だから、ポップアップでのjQueryを含めると、そこに機能しませ実行する必要があります。ポップアップを開くウィンドウ。

+1

Gumboとは何ですか? (Stackoverflowの意味のないスペース) –

+0

マシンは、Gumboが投稿した(受け入れた)関数を参照しています。 –

0

バインドkey eventsを簡単に実現するには、Jqueryを使用します。

ここでは、jQueryのを使用しないJSで達成することが可能です.keydown()

List of keyboard keys codes

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

リンクが壊れています。 – Dinei

38

を使用することができます。

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

質問がjQueryを求めているので、これが投票されたことを理解していますが、純粋なJavaScriptを探している人にとっては、この回答は非常に役に立ちます。だから私から1アップ投票。 –

+4

jQueryは通常のJSを使用する機能を削除しないことに注意してください。 –

+0

素晴らしいです。本当にありがとう! –

0

@Gumboの答えは良いのですが、多くの場合、あなたは私がoneイベントハンドラを使用することをお勧めしてこの動作を外しする必要があります。

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

OR

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

と準備行動を停止する

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

event.key ===「エスケープ」

これ以上の任意のコードはありません!

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

Mozilla Docs

Supported Browsers

関連する問題