【发布时间】:2011-02-22 04:00:21
【问题描述】:
如何在 JavaScript 中不在页面上放置输入元素的情况下捕获按键,例如 Ctrl+Z?好像在IE中,keypress和keyup事件只能绑定到输入元素(输入框,textareas等)
【问题讨论】:
-
@Tim:因为当GUI元素不在焦点时按下这些组合键时执行操作是非常规的,因此违反了最小惊喜原则。
-
@Tomalak:还有其他一些元素可能需要处理关键事件,例如
<canvas>,尽管我同意任何这样的元素都应该在发出键之前被强制占据焦点事件。使用tabindex属性将使元素能够接收焦点,如果它无法获得焦点。 -
我会推荐 Keypress javascript 库:dmauro.github.io/Keypress
-
捕获键盘输入的另一个原因是,如果您只在屏幕上显示条形码并使用条形码扫描仪作为键盘输入。我在做什么。
-
大多数应用程序都有没有输入焦点的键盘快捷键。常识。以 CTRL-Z 表示 UNDO 为例。
标签: javascript