使用JavaScript为Web应用程序创建全局键盘快捷键处理程序的最强大的方法是什么,即我应该处理哪些事件以及事件处理程序应该附加到什么位置?

我希望Gmail中的系统可以同时处理单键按键快捷方式以及带修改键的快捷键,例如Ctrl + B等。代码必须在IE 6以及现代浏览器中运行。

我可以使用Prototype框架而不是jQuery,所以请不要使用特定于jQuery的答案!

有帮助吗?

解决方案

LivePipe控件包中提供的HotKey库与Prototype一起使用,并且与IE兼容。

http://livepipe.net/extra/hotkey

其他提示

以为我会把另一个投入混合体中。我最近发布了一个名为Mousetrap的库。请访问 http://craig.is/killing/mice

JimmyP将此作为评论发布,但它应该是投票目的的答案。

http://www.openjs.com/scripts/events/keyboard_shortcuts/

我要做的是将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");
});

就处理修饰键而言,请查看此资源 (很老,但看起来仍然适用)以获得更多帮助。

还有一个名为 jwerty 的新JavaScript库,它易于使用且不依赖于jQuery的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top