每当单击ESC按钮时,我都想运行一个方法。在onkeypress事件文档中,我读到我将必须使用keydown
注意:在所有浏览器中,不会为所有键(例如ALT,CTRL,SHIFT,ESC)触发onkeypress事件。要仅检测用户是否已按下某个键,请改用onkeydown事件,因为该事件适用于所有键。
我设法写了一个可行的例子:
document.onkeydown = function (e) {
if (document.getElementById("fullscreen") !== null) {
var key = e.which || e.keyCode;
if (key === 27) {
alert(1);
}
}
}
<div id="fullscreen">test</div>
我们项目中的事件侦听器具有不同的模式,因此我尝试以相同的模式重写它,但是代码在按键时没有反应。
document.getElementById("fullscreen").addEventListener("keydown",
function (e) {
var key = e.which || e.keyCode;
if (key === 27) {
alert(1);
}
});
<div id="fullscreen">test</div>
第二个代码片段为什么不像第一个代码片段那样对按键产生反应?