我正在寻求具有为生产力网络应用程序创建键盘快捷键经验的其他人的建议。
目前,我正在将所有命令链接到keyup事件,但是我已阅读SO上的帖子,似乎建议我将它们链接到keypress事件。我选择了键,因为我希望命令只触发一次而不是多次,这可能发生在按键的情况下。但是我不确定是否还有其他我不想要的东西。
那么您建议哪个事件为Web应用程序创建命令快捷方式? Keyup或Keypress?
答案 0 :(得分:0)
keyup
和keypress
之间的主要区别在于,仅当您按某些可打印键时才会调度keypress
。例如,按 P 将同时触发,但按 Ctrl 将不会触发keypress
。因此,在实践中,如果您定义涉及不可打印键的热键,则keyup
事件即可。
accesskey
在W3C规范中标准化。它并不是真的很痛苦,非技术客户不可能经常在不同的浏览器之间切换。
除非开发一些复杂的网络应用,否则我的选择始终为accesskey
,这是一个非常重要的原因 - 辅助功能。常见的辅助设备可以很好地支持accesskey
,例如屏幕阅读器。如果您使用键盘事件来执行此操作,则必须为设备执行大量脏活。