页面js实现快捷键监听
浏览器对键盘事件的监听是KeyBoardEvent事件。该事件的属性如下:
keyBoardEvent事件中,keyCode, keyIdentifier两个实现用于区分按键。 常用的按键的keyCode
keyIdentifier如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 |
a U+0041 65<br> b U+0042 66<br> c U+0043 67<br> d U+0044 68<br> e U+0045 69<br> f U+0046 70<br> g U+0047 71<br> h U+0048 72<br> i U+0049 73<br> j U+004A 74<br> k U+004B 75<br> l U+004C 76<br> m U+004D 77<br> n U+004E 78<br> o U+004F 79<br> p U+0050 80<br> q U+0051 81<br> r U+0052 82<br> s U+0053 83<br> t U+0054 84<br> u U+0055 85<br> v U+0056 86<br> w U+0057 87<br> x U+0058 88<br> y U+0059 89<br> z U+005A 90<br> Esc U+001B 27<br> F1 F1 112<br> F2 F2 113<br> F3 F3 114<br> F4 F4 115<br> F5 F5 116<br> F6 F6 117<br> F7 F7 118<br> F8 F8 119<br> F9 F9 120<br> F10 F10 121<br> F11 F11 122<br> F12 F12 123<br> Ctrl Control 17 Shift Shift 16 Alt Alt 18 |
组合键
Ctrl, Shift, Alt三个键可以和其他键一起使用形成组合键
```function compositeKey(k, fn) { var k = k || ‘‘; var fn = fn || function(){};
var ks = k.split(‘+‘); if(ks.length < 2) { console.info(‘not composite key‘); return; }
document.addEventListener(‘keydown‘, function(e) { var ctrl = e.ctrlKey, shift = e.shiftKey, alt = e.altKey; var keyIdent = e.keyIdentifier;
if(ctrl && (ks.indexOf(‘ctrl‘) === -1)) {
return;
}
if(shift && (ks.indexOf(‘shift‘) === -1)) {
return;
}
if(alt && (ks.indexOf(‘alt‘) === -1)) {
return;
}
if(e.keyCode > 47 && e.keyCode < 91) {
keyIdent = String.fromCharCode(e.keyCode);
}
if(keyIdent.toLowerCase() === ks[ks.length-1]) {
fn(e);
}
});
}
// 调用例子compositeKey(‘ctrl+alt+w‘, function(e){console.log(e)}); ```
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。