检测altKey和/或ctrlKey

时间:2015-09-23 12:50:42

标签: javascript google-chrome firefox

以下代码适用于FF(Firefox),但不适用于chrome。 Chrome不会对altKey或ctrlKey执行操作,但如果我写e.shiftKey,它就会起作用 有没有一种方法可以使chrome能够作用于altkey和ctrlkey(以及它在FF中的作用)?

document.onkeypress = function(e) {
  if(e.altKey && e.shiftKey) {
     alert("Test");
  }
}

我在这个问题上找到了一个讨论chrome和FF差异的主题,但不幸的是,这对我没有帮助:

Detect Alt Gr (Alt Graph) modifier on key press

1 个答案:

答案 0 :(得分:2)

在chrome中的Alt上没有捕获按键事件,但您可以使用keydown事件。我建议在大多数情况下使用keydown事件而不是keypress,因为Firefox不会在SHIFT和基于Webkit的浏览器(例如Google Chrome和Safari)等修改键上触发按键事件,不会触发箭头键上的按键事件¹ 。

keydown事件会在这些浏览器中触发这些键,并且应该更可靠。

¹取自here