可能重复:
jQuery的哪个键代码用于转义键
如何在IE,Firefox和Chrome中检测逃逸键按下?下面的代码在IE和警报中有效27
,但在Firefox中它会警报0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
可能重复:
jQuery的哪个键代码用于转义键
如何在IE,Firefox和Chrome中检测逃逸键按下?下面的代码在IE和警报中有效27
,但在Firefox中它会警报0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
我认为最简单的方法是香草javascript:
document.onkeyup = function(event) {
if (event.key === 27){
//do something here
}
}
该keydown
事件将对Escape正常运行,并具有允许您keyCode
在所有浏览器中使用的优势。另外,您需要将侦听器附加到document
主体上,而不是附加到主体上。
2016年5月更新
keyCode
现在正处于弃用过程中,大多数现代浏览器key
现在都提供该属性,尽管您现在仍需要回退以提供良好的浏览器支持(在撰写本文时,Chrome和Safari的当前版本不支持它)。
evt.key
所有现代浏览器现在都支持2018年9月更新。
document.onkeydown = function(evt) {
evt = evt || window.event;
var isEscape = false;
if ("key" in evt) {
isEscape = (evt.key === "Escape" || evt.key === "Esc");
} else {
isEscape = (evt.keyCode === 27);
}
if (isEscape) {
alert("Escape");
}
};
Click me then press the Escape key
检查
keyCode
&&which
和keyup
||keydown