【发布时间】:2011-06-19 18:57:02
【问题描述】:
我正在制作一个广泛使用键盘的网络应用程序。我注意到内置的浏览器事件处理在不同的浏览器之间是不一致的,并且 jQuery 不能很好地规范化(例如,Firefox 发送一个 keypress 用于退格,chrome 没有)。我想知道是否有一个 javascript 库可以规范化这些特性并为键盘事件处理提供统一的接口。
【问题讨论】:
-
我没有回答您更大的问题,但我知道建议使用“keyup”而不是“keypress”,因为缺乏跨浏览器的实现。
-
您可能正在做一些很棒的事情,但请注意:制作一个行为方式与其他 Web 应用程序截然不同的 Web 应用程序是非常冒险的。对于像游戏这样的东西,这可能是一个好的想法,因为它可能会增加兴趣和挑战。对于像银行应用程序这样的东西,它可能会引起很多混乱和挫败感。
-
@kinakuta:一般来说,您不能使用
keyup代替keypress:它们有不同的用途。keyup在释放键时触发,而keypress在按下键后立即触发(并且在按住键时生成自动重复字符时可能会触发)。keypress是唯一可以告诉您有关所键入字符的任何可靠信息的事件;keyup和keydown只告诉您按下/释放的物理键的代码。实际上所有主流浏览器都支持keypress,但是在实现上有一些变化:unixpapa.com/js/key.html
标签: javascript jquery input keyboard-events