我有一個javascript window.open彈出窗口,並且我希望彈出窗口在用戶按下ESC鍵時自動關閉。我無法弄清楚如何鉤住keydown事件(以及什麼對象?),以便我可以捕獲ESC鍵。如何在JavaScript彈出窗口上處理ESC keydown
我正在使用jQuery。
我有一個javascript window.open彈出窗口,並且我希望彈出窗口在用戶按下ESC鍵時自動關閉。我無法弄清楚如何鉤住keydown事件(以及什麼對象?),以便我可以捕獲ESC鍵。如何在JavaScript彈出窗口上處理ESC keydown
我正在使用jQuery。
嘗試是這樣的:
$(document).keydown(function(e) {
// ESCAPE key pressed
if (e.keyCode == 27) {
window.close();
}
});
請記住,你必須使用功能@Gumbo posted在彈出的窗口......所以,你將需要包括JQuery的在彈出並執行功能有,不打開彈出窗口的窗口。
什麼是Gumbo? (Stackoverflow的無意義間距) – 2009-09-26 17:57:50
機器指的是Gumbo發佈(您接受)的函數。 – 2009-09-26 19:26:47
您可以使用Jquery輕鬆實現綁定key events。
在這裏,您可以使用.keydown()
$(document).keydown(function(e) {
if (e.keyCode == 27) {
window.close();
}
});
鏈接已損壞。 – Dinei 2016-08-29 21:12:38
有可能與JS實現不使用jQuery。
window.onkeydown = function(event) {
if (event.keyCode == 27) {
console.log('escape pressed');
}
};
據我所知,這是因爲問題要求jQuery而被否決,但對於那些尋找純JavaScript的人來說,這個答案是非常有幫助的。所以1投票從我。 – 2014-08-24 09:47:54
請記住,jQuery不會刪除使用常規JS的能力。 – 2015-10-06 01:45:09
太棒了。謝謝一堆! – 2016-11-08 23:18:49
@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');
沒有更多的任意數字代碼!
document.addEventListener('keydown', function(event) {
const key = event.key; // const {key} = event; in ES6+
if (key === "Escape") {
window.close();
}
});
謝謝秋葵這一點。它成爲谷歌的第一件事:) – dvLden 2012-11-18 19:07:52