一.鍵盤事件 onkeydown: 按下鍵盤時觸發 onkeypress: 按下有值的鍵時觸發 : 按下 、`Alt Shift Meta` 這樣無值的鍵,這個事件不會觸發對於有值的鍵,按下時先觸發 keydown 事件,再觸發這個事件 onkeyup:鬆開鍵盤時觸發該事件 二.組合鍵 ctrl相關 ...
一.鍵盤事件
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')}
}
三.攔截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
//沒法攔截