使用JavaScript为Web应用程序创建全局键盘快捷键处理程序的最强大的方法是什么,即我应该处理哪些事件以及事件处理程序应该附加到什么位置?
我希望Gmail中的系统可以同时处理单键按键快捷方式以及带修改键的快捷键,例如Ctrl + B等。代码必须在IE 6以及现代浏览器中运行。
我可以使用Prototype框架而不是jQuery,所以请不要使用特定于jQuery的答案!
答案 0 :(得分:6)
以为我会把另一个投入混合体中。我最近发布了一个名为Mousetrap的库。请查看http://craig.is/killing/mice
答案 1 :(得分:5)
LivePipe控件包中提供的HotKey库与Prototype一起使用,并且与IE兼容。
答案 2 :(得分:4)
JimmyP将此作为评论发布,但它应该是投票目的的答案。
答案 3 :(得分:3)
我要做的是将onKeyUp事件附加到document.body。然后,在此事件处理程序中,我将使用Element.fire方法来触发自定义事件。虽然这一步是可选的,但它有助于将事件处理程序与要执行的操作分离,并且您可以使用相同的自定义事件处理程序来表示按钮单击事件。
$(document.body).observe("keyup", function() {
if(/* key + modifier match */) {
$(document.body).fire("myapp:mycoolevent");
}
});
$(document.body).observe("myapp:mycoolevent", function() {
// Handle event.
});
稍后,要将同一事件绑定到按钮,请单击:
$(button).observe("click", function() {
$(document.body).fire("myapp:mycoolevent");
});
就处理修饰键而言,请查看this resource(非常陈旧,但仍然看起来适用)以获得更多帮助。
答案 4 :(得分:2)
还有一个名为jwerty的新JavaScript库,它易于使用,不依赖于jQuery。