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

一.键盘事件

  • 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
//没法拦截
posted @ 2019-11-21 17:01  小小咸鱼YwY  阅读(1983)  评论(0编辑  收藏  举报