2009-09-26 28 views

回答

92

嘗試是這樣的:

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

謝謝秋葵這一點。它成爲谷歌的第一件事:) – dvLden 2012-11-18 19:07:52

3

請記住,你必須使用功能@Gumbo posted在彈出的窗口......所以,你將需要包括JQuery的在彈出並執行功能有,不打開彈出窗口的窗口。

+1

什麼是Gumbo? (Stackoverflow的無意義間距) – 2009-09-26 17:57:50

+0

機器指的是Gumbo發佈(您接受)的函數。 – 2009-09-26 19:26:47

38

有可能與JS實現不使用jQuery。

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

據我所知,這是因爲問題要求jQuery而被否決,但對於那些尋找純JavaScript的人來說,這個答案是非常有幫助的。所以1投票從我。 – 2014-08-24 09:47:54

+4

請記住,jQuery不會刪除使用常規JS的能力。 – 2015-10-06 01:45:09

+0

太棒了。謝謝一堆! – 2016-11-08 23:18:49

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 ===「Escape」

沒有更多的任意數字代碼!

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

Mozilla Docs

Supported Browsers