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
//沒法攔截


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM