页面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)}); ```

页面js实现快捷键监听,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。