设置快捷键




这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb)。

hotkeys on Github
hotkeys预览

  __            __    __                         |  |--..-----.|  |_ |  |--..-----..--.--..-----.|     ||  _  ||   _||    < |  -__||  |  ||__ --||__|__||_____||____||__|__||_____||___  ||_____||_____|   

创建

您将需要在您的系统上安装的 Node.js。

# bower 安装
$ bower install hotkeysjs# npm 安装
$ npm install hotkeys-js# 在页面上引用需要压缩的话,运行
$ grunt dist# 在dist目录中生成下列文件:
# dist/hotkeys.js
# dist/hotkeys.min.js
# dist/hotkeys.min.map

定义快捷键

// 定义a快捷键
hotkeys('a', function(event,handler){//event.srcElement: input //event.target: inputif(event.target === "input"){alert('你在输入框中按下了 a!')}alert('你按下了 a!')
});// 定义a快捷键
hotkeys('ctrl+a,ctrl+b,r,f', function(event,handler){switch(handler.key){case "ctrl+a":alert('你按下了ctrl+a!');break;case "ctrl+b":alert('你按下了ctrl+b!');break;case "r":alert('你按下了r!');break;case "f":alert('你按下了f!');break;}//handler.scope 范围
});// 返回false将停止活动,并阻止默认浏览器事件
hotkeys('ctrl+r', function(){ alert('停止刷新!'); return false });// 多个快捷方式做同样的事情
hotkeys('⌘+r, ctrl+r', function(){ });// 对所有摁键执行任务
hotkeys('*','wcj', function(e){console.log('干点活儿',e);console.log("key.getScope()::",hotkeys.getScope());if(hotkeys.shift) console.log('大哥你摁下了 shift 键!');if(hotkeys.ctrl) console.log('大哥你摁下了 ctrl 键!');if(hotkeys.alt) console.log('大哥你摁下了 alt 键!');
});

支持的键

, shift, option, , alt, ctrl, control, command,

Command()
Control
Option(alt)
Shift
Caps Lock(大写)
fn 功能键就是fn(不支持)
↩︎ return/Enter
space 空格键

修饰键判断

可以对下面的修饰键判断 shift alt option ctrl control command

hotkeys('shift+a,alt+d, w', function(e){console.log('干点活儿',e);if(hotkeys.shift) console.log('大哥你摁下了 shift 键!');if(hotkeys.ctrl) console.log('大哥你摁下了 ctrl 键!');if(hotkeys.alt) console.log('大哥你摁下了 alt 键!');
});

切换快捷键

如果在单页面在不同的区域,相同的快捷键,干不同的事儿,之间来回切换。O(∩_∩)O !

// 一个快捷键,有可能干的活儿不一样哦
hotkeys('ctrl+o, ctrl+alt+enter', 'issues', function(){console.log('干点活儿');
});
hotkeys('o, enter', 'files', function(){ console.log('另一种活儿');
});// 设定范围scope
hotkeys.setScope('issues'); // 默认所有事儿都干哦 

删除标记快捷键

删除区域范围标记

hotkeys.deleteScope('issues');

解除绑定

hotkeys.unbind("ctrl+o, ctrl+alt+enter") 解除绑定两组快捷键
hotkeys.unbind("ctrl+o","files") 解除绑定名字叫files钟的一组快捷键

键判断

判断摁下的键是否为某个键

hotkeys('a', function(){console.log(hotkeys.isPressed("A")); //=> trueconsole.log(hotkeys.isPressed(65)); //=> true
});

获取摁下键值

获取摁下绑定键的键值 hotkeys.getPressedKeyCodes()

hotkeys('command+ctrl+shift+a,f', function(){console.log(hotkeys.getPressedKeyCodes()); //=> [17, 65] 或者 [70]
})

过滤

INPUT SELECT TEXTAREA 默认不处理。
hotkeys.filter 返回 true 快捷键设置才会起作用,flase 快捷键设置失效。

hotkeys.filter = function(event){return true;
}
//如何增加过滤可编辑标签 <div contentEditable="true"></div>
//contentEditable老浏览器不支持滴
hotkeys.filter = function(event) {var tagName = (event.target || event.srcElement).tagName;return !(tagName.isContentEditable || tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');
}//
hotkeys.filter = function(event){var tagName = (event.target || event.srcElement).tagName;hotkeys.setScope(/^(INPUT|TEXTAREA|SELECT)$/.test(tagName) ? 'input' : 'other');return true;
}

兼容模式

var k = hotkeys.noConflict();
k('a', function() {console.log("这里可以干一些事儿")
});hotkeys()
// -->Uncaught TypeError: hotkeys is not a function(anonymous function)
// @ VM2170:2InjectedScript._evaluateOn
// @ VM2165:883InjectedScript._evaluateAndWrap
// @ VM2165:816InjectedScript.evaluate @ VM2165:682

js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入相关推荐

  1. C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)

    1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加:  2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .K ...

  2. 蓝牙HID驱动:某键盘,Fn组合键,小概率无响应,普通Keyboard功能正常。

    蓝牙HID驱动:某键盘,Fn组合键,小概率无响应,普通Keyboard功能正常. 分析:同平台产品ABC,A搭配定制键盘,有该问题,B,C均无此问题. 初步判断为A搭配的键盘有问题.但看了HCI lo ...

  3. 中英文标点符号切换的组合键_最全的键盘各键及组合键功能说明,建议收藏

    点击上面"蓝字"关注人民书写 键盘是最常用的输入设备,通过键盘可以将汉字.英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据.那么键盘分为几个功能区?各键的功 ...

  4. 中英文标点符号切换的组合键_最全的键盘各键及组合键功能说明,好好学习

    键盘是最常用的输入设备,通过键盘可以将汉字.英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据.那么键盘分为几个功能区?各键的功能是什么呢?组合键又有什么功能呢?下面就分别予以说 ...

  5. 键盘上什么组合键表示热启动计算机,什么是电脑热启动?电脑怎么热启动

    什么是电脑热启动? 电脑热启动又称键盘启动,在不断电状态下(即开机状态下)进行的电脑程序启动,就叫做电脑热启,也可以简化为热启动. 电脑怎么热启动? 电脑在DOS状态下运行时,即同时按下键盘上的Ctr ...

  6. Qt模拟键盘按键与组合键

    Tab键: QKeyEvent tabKey(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);QCoreApplication::sendEvent(th ...

  7. win7 最常用的快捷键 ( 完全可以使用键盘来操作)

    win7 最常用的快捷键 ( 完全可以使用键盘来操作) F1  键  (用来使用帮助文档的) win (开始菜单) win+E ( 打开计算机窗口) win+TAB   (切换窗口应用,     有时 ...

  8. windows命令大全_必收藏!电脑快捷键、组合键大全

    键盘快捷键使用大全所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的.下面为大家介绍一些常用快捷键的使用和功能.希望这些电脑快捷键大全可以给用户带来便捷的上网体 ...

  9. 计算机剪切功能是哪个组合键,剪切快捷键是哪个?电脑剪切快捷键大全

    一直都习惯了使用鼠标右键进行剪切操作,但最近遇到一个本文编辑器,右键菜单中只有复制和粘贴选项,并没有剪切选项,如果要进行剪切操作,就必须用到剪切快捷键.剪切快捷键是哪个?电脑用了这么多年,由于快捷键用 ...

最新文章

  1. OpenVINO FPS也可以达100帧
  2. python强制用什么作为语句缩进符号_python从入门到放弃 第二天 谈谈python代码中的冒号和缩进...
  3. 66319d电源使用说明书_你用对电暖器了吗?冬季使用家电应该注意这四点
  4. c语言编程三问三答,c语言程序编程
  5. Spring Retry 重试机制实现及原理
  6. Java 蓝桥杯 A+B problem
  7. C语言中static关键字详解
  8. 搜狐畅游笔试题:1. 美丽的项链(动态规划) 2.多线程并发交替输出
  9. 第一章踏上python之旅_仙侠旅人传
  10. LFSR(线性反馈移位寄存器)
  11. Ubuntu 下搭建 GCC 交叉编译工具链
  12. 联想换机助手_三星s换机助手下载-三星S换机助手 安卓版v3.6.07.11-PC6安卓网
  13. 可编程渲染管线(SRP)_学习笔记
  14. flex布局及flex实现常见的前端布局
  15. python中最大值函数,python中如何获取最大值函数
  16. 腾讯云北京技术沙龙邀请函:AI技术全面场景化落地实践
  17. 2019 ICPC 南京区域赛 - H Prince and Princess(博弈+思维)
  18. CUDA error: device-side assert triggered
  19. mysql存储包含单引号英文字符串,SQL中写入包含有英文单引号“ '' ”失败问题深入详解...
  20. linux yield_通俗易懂的了解——Linux线程模型和线程切换

热门文章

  1. LeetCode--167--两数之和 II - 输入有序数组
  2. SpringBoot中@EnableAutoConfiguration注解的作用
  3. java int转String全部方式的效率对照与深入解析
  4. 写给初学前端工程师的一封信 (转于Kejun)
  5. Linux ALSA声卡驱动之六:ASoC架构中的Machine
  6. 戴尔服务:为企业转型导航
  7. 深入入门正则表达式(java) - 匹配原理 - 1 - 引擎分类与普适原则
  8. 苹果应用开发架构及项目结构
  9. 移植uboot第九步:支持yaffs映像烧写
  10. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统