1. 程式人生 > 實用技巧 >js鍵盤事件以及鍵盤事件攔截

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