【发布时间】:2014-07-03 09:59:50
【问题描述】:
我正在为用户定义的快捷键组合创建一个文本框,它只是打印出修饰符和键。
我真的不在乎它是否在您按下或释放键时设置,所以我从keypress 事件开始。首先,修饰符似乎会影响键码(例如换档,这意味着键码根本不是键码,而是键入的字符码),而且preventDefault 似乎无法正常工作,所以我改为keydown。这在 event.keyCode 中引入了差异。例如,逗号, 产生了一个令人愉快的ascii keyCode=44,但现在它是一个令人作呕的keyCode=188。
一个测试页面:http://www.javascripter.net/faq/keyboardeventproperties.htm
我真的很想在这里有一些标准化的键码,或者至少有一些一致的键码。我的要求是解决方法。要么:
对于奇怪但更一致的
keydown/@987654334 @?-
可以将
keypress设置为更像keydown/keyup以实际给出被按下的键,是否有类似preventDefault的机制来阻止浏览器拦截快捷方式?
【问题讨论】:
-
charCode在keypress事件中是否有帮助? -
不清楚你想要什么。您想要
a和A的不同代码吗? -
@Barmar 按键有问题,如前所述。不,我追求的是捷径。
a和A是同一个物理密钥,我希望密钥代码能够反映这一点(更新后的 Q)。
标签: javascript dom-events keyboard-shortcuts keycode