js键盘事件以及键盘事件拦截
一.键盘事件
-
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')}
}
资源搜索网站大全 https://www.renrenfan.com.cn 广州VI设计公司https://www.houdianzi.com
三.拦截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
//没法拦截