该事件对于Escape来说效果很好,并且具有允许您在所有浏览器中使用的好处。此外,您需要将听者附加到主体而不是正文。keydownkeyCodedocument
2016 年 5 月更新
keyCode现在处于被弃用的过程中,大多数现代浏览器现在都提供key属性,尽管您现在仍然需要一个回退以获得体面的浏览器支持(在撰写本文时,Chrome和Safari的当前版本不支持它)。
更新 2018 年 9 月 evt.key 现在所有现代浏览器都支持。
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