js键盘事件以及键盘事件拦截
程序员文章站
2023-02-04 10:31:17
一.键盘事件 onkeydown: 按下键盘时触发 onkeypress: 按下有值的键时触发 : 按下 、`Alt Shift Meta` 这样无值的键,这个事件不会触发对于有值的键,按下时先触发 keydown 事件,再触发这个事件 onkeyup:松开键盘时触发该事件 二.组合键 ctrl相关 ......
一.键盘事件
onkeydown: 按下键盘时触发
-
onkeypress: 按下有值的键时触发
注意
:onkeypress
按下ctrl
、alt
、shift
、meta
这样无值的键,这个事件不会触发对于有值的键,按下时先触发 keydown 事件,再触发这个事件 onkeyup:松开键盘时触发该事件
二.组合键
- ctrl相关
- alt相关
meta (mac键盘是一个四瓣的小花,windows键盘是windows键) 相关
shift相关
写一个举例其他都类似
比如ctrl+c
window.onkeydown=function (e) { if (e.ctrlkey) { //其他几个类似shiftkey,altkey,metakey if( e.key == 'c'){ //这里最好用keycode可以无视大小写,你要是区分大小写最好这样写 console.log('ctrl+c') } } } //一般简写 window.onkeydown=function (e) { if (e.ctrlkey&&e.key == 'c'){console.log('ctrl+c')} }
三.拦截preventdefault
比如拦截ctrl+h事件
<script> window.onkeydown=function (e) { if (e.ctrlkey) { if( e.key == 'h'){ console.log('ctrl+h') e.preventdefault(); } } } </script>
但是有些按键没法拦截具体为啥没有深究过也没用到过,比如 chrome
ctrln ctrlshiftn ctrlt ctrlshiftt ctrlw ctrlshiftw //没法拦截