JavaScript 跨浏览器输入层

7

我正在制作一个广泛使用键盘的Web应用程序。我注意到内置的浏览器事件处理在不同的浏览器中不一致,而jQuery不能很好地进行规范化(例如,Firefox对于退格键发送keypress,而Chrome不会)。我想知道是否有一个JavaScript库可以规范这些特异性并提供统一的接口来处理键盘事件。


我无法回答你的更大问题,但我知道建议使用“keyup”而不是“keypress”,因为浏览器之间的实现存在差异。 - kinakuta
这会是一个答案吗?(https://dev59.com/8XE95IYBdhLWcg3wV8a_) - Uwe Keim
2
你可能正在做一些很棒的事情,但需要注意的是:制作一个在行为上与其他网络应用程序显著不同的网络应用程序相当冒险。对于游戏之类的东西,这可能是一个绝佳的主意,因为它可以增加趣味性和挑战。但对于银行业务之类的应用程序,这可能会导致许多混乱和沮丧。 - Pointy
1
请尝试访问http://www.stepanreznikov.com/js-shortcuts/。 - spacevillain
2
@kinakuta:通常情况下,你不能使用“keyup”替代“keypress”,它们的作用不同。“keyup”当按键释放时触发,而“keypress”在按键被按下后立即触发(并且在按住键时生成自动重复字符时可能会触发)。“keypress”是唯一能够可靠地告诉你输入的字符的事件;“keyup”和“keydown”只能告诉你被按/释放的物理键的代码。实际上,所有主流浏览器都支持“keypress”,但实现方式有所不同:http://unixpapa.com/js/key.html - Tim Down
你说得对,@Tim,关于按键支持 - 当我再次研究它时,我发现了这一点(我记错了一些东西)。 - kinakuta
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接