这是最好的 Javascript 键盘事件库。(热键,快捷方式)[关闭]

Posted

技术标签:

【中文标题】这是最好的 Javascript 键盘事件库。(热键,快捷方式)[关闭]【英文标题】:which is the best Javascript Keyboard event library.(Hotkeys,Shortcuts ) [closed] 【发布时间】:2011-01-22 03:27:15 【问题描述】:

我想制作一个使用键盘事件的 bbs 论坛,

那么哪个是最好的键盘事件库,

谢谢

【问题讨论】:

“最佳”是一个难以匹配的标准。您可以尝试提供有关您要完成的工作的更多详细信息。这样,我们可以更具体。 【参考方案1】:

只是另一个混​​音。我最近发布了一款名为 Mousetrap 的产品。你可以在http://craig.is/killing/mice查看示例

【讨论】:

它很容易实现并且工作起来就像一个魅力。在商业项目中使用它的许可证如何? 它使用 Apache 2.0 许可证。 这是一个很棒的库,但有一个主要缺点:它不允许您指定将事件绑定到的容器。它始终绑定到文档。这就是为什么我必须在我的回调中添加一些额外的焦点检查。 (我的网站包含两个元素,每个元素都有不同的绑定。) @Domi - 从 1.5 开始,我相信这个问题现在已经修复 简单易用。优雅的功能。小的。插件。太棒了!【参考方案2】:

试试KeyboardJS

就这么简单

KeyboardJS.on('a', function() alert('hello!'); );

又像

一样灵活
var bindInstance = KeyboardJS.on('ctrl + a, ctrl + b, c', function(event, keysPressedArray, keyComboString)

    //you get the event object
    console.log('event object', event);

    //you get the keys pressed array
    console.log('keys pressed', keysPressedArray);

    //you get the key combo string
    console.log('combo pressed', keyComboString);

    console.log('I will fire when \'ctrl + a\' or \'ctrl +b\' or \'c\' is pressed down');

    //block event bubble
    return false;

, function(event, keysPressedArray, keyComboString) 

    console.log('I will fire on key up');

    //block event bubble
    return false;

);

您可以通过调用清除绑定

bindInstance.clear();

您可以使用特定键清除所有绑定

KeyboardJS.clear('a, b');

它是开源的,可在Github 获得。它包含在一个全局库或 RequireJS 的 AMD 模块中。

这是introduction video。

好了,现在不用再担心键盘了,为您的应用编写代码吧。 ;)

【讨论】:

似乎是一个非常棒的脚本,但我可以说它在 IE8 中不起作用,这对我来说是一个可悲的问题(在几个层面上)。当我使用 IE8 转到 robertwhurst.github.com/KeyboardJS 时,它只是说“需要 JS”。 演示可能无法在 IE 中运行,但库应该。它在几个版本之前完成了。你试过图书馆本身吗? 我没有。我会试一试。演示是否需要展示可以处理所有浏览器的调整?我很乐意在演示页面上分叉和调整并发送拉取请求。 那会很有帮助。我真的被我目前的项目淹没了,大麦有时间睡觉。如果您修复演示,我将接受您的拉取请求。 这是我测试过的唯一一个真正适合我情况的 4-5 库(divcontenteditable="true")。谢谢@RobertHurst!【参考方案3】:

KEYPRESS 专注于游戏输入,支持任意键作为修饰符,以及其他功能。也是pre-packaged for Meteor。

【讨论】:

【参考方案4】:

据我所知,Mousetrap 是唯一可以让您指定键序列而不是组合的库。这对我的应用程序非常方便。

【讨论】:

其实KeyboardJS也有这个功能。【参考方案5】:

许多 javascript 库都提供了很多方法来捕获关键输入并将其用于您的优势。可以肯定的是,您将能够找到一个库来做到这一点,仅此而已。但是,我在那里没有太多经验。

我已经使用Ext 有一段时间了,他们的KeyMap 类真的很容易使用。这是一个使用它的简单示例。

new Ext.KeyMap(Ext.getDoc(), 
        key: 'abc',
        alt: true,
        handler: function(k, e) 
            var t = Ext.getCmp('tabpanel');
            switch(k) 
                case 65:
                    t.setActiveTab(0);
                    break;
                case 66:
                    t.setActiveTab(1);
                    break;
                case 67:
                    t.setActiveTab(2);
                    break;
            
        ,
        stopEvent: true
    );

这需要 Ext.TabPanel 类,并允许用户按下键盘键来更改选项卡,而不是单击选项卡本身。

当然,它可以做的远不止这些。这是一个简单的例子来说明它是如何工作的。

【讨论】:

【参考方案6】:

这个对于jquery来说还是不错的。

https://github.com/jeresig/jquery.hotkeys

【讨论】:

【参考方案7】:

如果您刚开始并且想了解热键的工作原理,这个会更好。

https://github.com/UthaiahBollera/HotkeysInJavascriptLibrary

【讨论】:

【参考方案8】:

你可以试试这个……

http://unixpapa.com/js/key.html

【讨论】:

-1:这不是一个库——只是一个参考

以上是关于这是最好的 Javascript 键盘事件库。(热键,快捷方式)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

检测javascript中的键盘错误

JavaScript键盘鼠标事件处理

javascript事件相关3

Javascript 移动键盘事件

如何使用JavaScript捕获iOS上的隐藏键盘事件

JavaScript监听键盘事件