首页 > 解决方案 > 添加事件监听器监听 keydown

问题描述

每当单击 ESC 按钮时,我都想运行一个方法。在 onkeypress 事件文档中,我读到我将不得不使用 keydown

注意:onkeypress 事件并非针对所有浏览器中的所有键(例如 ALT、CTRL、SHIFT、ESC)触发。要仅检测用户是否按下了某个键,请改用 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>

为什么第二个代码片段不像第一个片段那样对按键做出反应?

标签: javascripthtml

解决方案


推荐阅读