代码之家  ›  专栏  ›  技术社区  ›  Trevor Sullivan

键盘事件.altKey在keydown事件上为false

  •  0
  • Trevor Sullivan  · 技术社区  · 5 年前

    目的

    实际结果

    使用下面的代码,我一直收到 false 值,当我按下 美国 .

    document.addEventListener('keydown', e => {
      if (e.key == 'u') {
        txt.value = e.altKey.toString()
      }
    })
    

    txt 是一个 <textarea>

    预期结果

    这个 KeyboardEvent.altKey 属性返回 true 选项 美国 keydown 事件。根据 Mozilla Developer Network (MDN) documentation for the altKey attribute ,它应该返回 键盘按下

    问题 :这里发生了什么事,我如何让它以我期望的方式工作?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Trevor Sullivan    5 年前

    结果证明 美国 实际上是在返回角色 ¨ 而不是 u 对于 key 属性。相反,我需要做的是检查 code 属性 KeyboardEvent ,并检查它是否等于 KeyU .

    document.addEventListener('keydown', e => {
      if (e.code == 'KeyU' && e.altKey) {
        // Do stuff here
      }
    })