欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js键盘事件以及键盘事件拦截

程序员文章站 2022-05-31 19:48:44
一.键盘事件 onkeydown: 按下键盘时触发 onkeypress: 按下有值的键时触发 : 按下 、`Alt Shift Meta` 这样无值的键,这个事件不会触发对于有值的键,按下时先触发 keydown 事件,再触发这个事件 onkeyup:松开键盘时触发该事件 二.组合键 ctrl相关 ......

一.键盘事件

  • onkeydown: 按下键盘时触发

  • onkeypress: 按下有值的键时触发

    注意: onkeypress按下 ctrlaltshiftmeta 这样无值的键,这个事件不会触发对于有值的键,按下时先触发 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
//没法拦截