keypress.js是一个捕获键盘输入的JavaScript库,它简单易用,轻量级的压缩版本只有9kB左右,并且没有依赖其他JavaScript库。

我们通常用键盘事件来监听keydown和keyup事件。当按下键盘的任意键的时候,keydown事件被触发,放开该键时keyup事件被触发。但有一些特殊位置的键盘符无法自动触发keyup事件,这时需要我们手动监听该事件。所以,就有了keypress.js用来监听键盘事件。

keypress.js的github地址以及项目主页。

keypress.js的使用

首先在html页面中引入impress.js文件:

然后,实例化一个监听器:

var listener = new window.keypress.Listener();

接着,就可以用这个监听器监听键盘事件了,我们可以通过调用keypress.js的API来实现对键盘事件的监听。下面就介绍一下keypress.js都有哪些API。

.simple_combo

最简单的监听办法就是使用使用simple_combo API

格式如下:

`simple_combo(keys, on_keydown_callback)`

它有两个参数,第一个参数是指定的单个按键或者组合键,第二个参数是一个回调函数,它在每一次用户按下指定的keyboard时被调用。例如:

listener.simple_combo("ctrl c", function() {

console.log("You pressed ctrl c");

});

当用户同时按下"ctrl c"时,函数才会被调用。

.counting_combo

用于对组合快捷键被按下的次数进行计数,格式如下:

counting_combo(keys, on_count_callback)

它也有两个参数,不过第一个参数是两个按键组合的快捷键,比如Ctrl c,Ctrl v等,第二个参数是一个回调函数,例如:

listener.counting_combo("shift s", function(e, count) {

console.log("You've pressed this " + count + " times.");});

count实际上是shift一直按着的情况下c被按下的次数。

.sequence_combo

用于注册一个序列组合,

格式如下:

sequence_combo(keys, callback)

它也有两个参数,第一个参数是用于描述的按键序列,另一个参数是一个回调函数,当按键序列的按键都被按下时,这个函数才会被调用。

例如:

listener.sequence_combo("up up down down left right left right b a enter", function() {

lives = 30;

}, true);

.register_combo

如果想要使用有更高级的功能keypress事件,就可以使用.register_combo API,格式如下:

register_combo(combo_dictionary)

它提供了许多可选的参数,下面是这些可选的参数以及它们的默认设置:

listener.register_combo({

"keys" : null,

"on_keydown" : null,

"on_keyup" : null,

"on_release" : null,

"this" : undefined,

"prevent_default" : false,

"prevent_repeat" : false,

"is_unordered" : false,

"is_counting" : false,

"is_exclusive" : false,

"is_solitary" : false,

"is_sequence" : false

});

.register_many

如果一次要注册多个组合,为了方便描述这些组合对象,可以将它们全部放到一个数组中,格式如下:

register_many(combo_dictionary_array)

例如:

var my_scope = this;

var my_combos = listener.register_many([

{

"keys" : "shift s",

"is_exclusive" : true,

"on_keydown" : function() {

console.log("You pressed shift and s together.");

},

"on_keyup" : function(e) {

console.log("And now you've released one of the keys.");

},

"this" : my_scope

},

{

"keys" : "s",

"is_exclusive" : true,

"on_keyup" : function(event) {

// Normally because we have a keyup event handler,

// event.preventDefault() would automatically be called.

// But because we're returning true in this handler,

// event.preventDefault() will not be called.

return true

},

"this" : my_scope

}

]);

.unregister_combo

用于注销所有的连击或者指定按键组合,其格式如下:

unregister_combo(keys_or_combo_dictionary)

例如注销所有的已经注册的shift s组合:

listener.unregister_combo("shift s");

.unregister_many

格式如下:

unregister_many(array_of_keys_or_combo_dictionaries)

用于注销大量的组合,从按键组成的数组中或者组合字典中注销,例如:

listener.unregister_many(my_registered_combos);

.get_registered_combos()

用于获得监听中所有注册的组合。

listener.get_registered_combos()

.reset()

重置,用于清空所有注册的组合。

`listener.reset()`

.stop_listening()

停止监听,直到listen()再次被唤醒。

例如当我们在输入一个字段或者文本时就可以这样用:

$('input[type=text]')

.bind("focus", function() { listener.stop_listening(); })

.bind("blur", function() { listener.listen(); });

.destroy()

用于监听结束后,摧毁此次监听的所有记录。

listener.destroy();

有不对的地方,还请多多指教~~

java keyboard.press_用来捕获键盘输入的keypress.js介绍相关推荐

  1. WPF 捕获键盘输入事件

    最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEven ...

  2. Keypress - 捕获键盘输入的JavaScript库

    Keypress 是一个强大的 JavaScript 库,用于捕获键盘输入.这是一个有非常特殊的功能的输入捕获库,它是很容易掌握和使用,并且不依赖第三方库.在网站开发中,经常会碰到需要处理键盘输入的场 ...

  3. 编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223

    编写一个Java应用程序.用户从键盘输入一个1-99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数.回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121.3223 ...

  4. JAVA编写程序实现,由键盘输入两个整数,输出其中较大的数。

    import java.util.Scanner;public class Test1 {public static void main(String[] args) {// 1,编写程序实现,由键盘 ...

  5. java输出数组的最大值_JAVA 键盘输入数组,输出数组内容和最大值、最小值(示例代码)...

    package shuzu; import java.util.Scanner; public class shuzu { /** * @param args */ public static voi ...

  6. python监听键盘输入 linux_Linux下使用Python捕获键盘输入

    在Linux下如何用Python监控键盘记录 思路 在上篇已经说到如何使用Python获取/dev/input目录下event对应的设备的名字.那么我们可以知道设备的名字,就可以通过名字知道哪些eve ...

  7. java使用scanner.next方式接收键盘输入

    import java.util.Scanner; //next方式接收 public class Demo01 {public static void main(String[] args) {// ...

  8. java input回车,用java怎样编写加减乘除,从键盘输入,例如:1+2按回车得到

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import org.junit.Test; import java.util.regex.Matcher; import java.util.regex ...

  9. Java编程字符逆序输出_用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在屏幕上。...

    展开全部 代码如下: import java.util.Scanner; public class ScannerDemo{ public static void main(String[] args ...

最新文章

  1. 0102 项目经理的精神病(二)完美
  2. java fastjson_java操作json数据之fastjson
  3. facebook工具xhprof的安装与使用-分析php执行性能
  4. 【渝粤教育】 广东开放大学 21秋期末考试婚姻家庭法10218k2
  5. debug error怎么解决_我要以血和泪的经历告诉你,这个 bug 太难解决了
  6. 算法不会,尚能饭否之树(2)
  7. jmeter.properties控制聚合报告的用户响应时间设置和smmary results
  8. 利用格林函数解泊松方程
  9. 迈达斯GTS-NX网格模型(FPN)导入Flac3D 6.0
  10. Unity多人游戏集合
  11. 高速ViALUX DMD操控 V9501 VIS/UV with 0.95“ 1080p DMD
  12. ubuntu 16.04 镜像下载(国内开源镜像站)
  13. 汇编总结:mov指令
  14. _15-骑士精神(IDA*)
  15. 既生Java,何生Groovy?
  16. Mac上iCloud账户怎样才能注销iCloud无法注销
  17. 董明珠再砸150亿,欲建立自主创新智能制造产业基地
  18. SOLIDWORKS如何正确使用焊件及材料切割清单
  19. 使用百度echarts制作可视化大屏——最终效果和动态数据刷新
  20. 从Nuget官网上下载指定版本Nuget包

热门文章

  1. 逍遥情缘服务器维护没通告,【更新公告】11月9日全区例行维护公告
  2. 学会ipconfig,ping,netstat,tracert,pathping,arp、net及netsh等常用网络cmd命令 2021-4-11
  3. python使用http、https代理
  4. Centos 安装nfs
  5. 人工智能、机器学习、深度学习之间的关系
  6. 浅谈 深度学习、机器学习、人工智能
  7. CodeForces - 51C 修信号站_思维+二分答案
  8. 1.animation 判断动画结束,结束后执行另一事件;2.用css3写竖条纹背景
  9. 基于python的人工智能的案例-廖雪峰大牛13个案例带你全面入门人工智能!
  10. AD在更新PCB时出现的问题