HOWTO · JavaScript
在 JavaScript 中模擬按鍵
本教程幫助你使用 JavaScript 以程式設計方式模擬按鍵。
本頁內容
本文將討論如何在 JavaScript 中以程式設計方式觸發按鍵事件。
在 JavaScript 中使用 dispatchEvent 方法模擬按鍵
我們可以使用 dispatchEvent 方法來觸發特定事件。
例子:
window.addEventListener('keydown', (e) => {console.log(e)})
window.dispatchEvent(new KeyboardEvent('keydown', {'key': 'b'}));
點選這裡執行上面的程式碼。
監聽並觸發 keydown 事件
為了監聽 keydown 事件,我們使用 addEventListener 和’keydown’引數。然後通過使用 KeyboardEvent 例項呼叫 window.dispatchEvent 來觸發此事件。
在建構函式的第一個引數中,我們指定要觸發的鍵盤事件的型別。在第二個引數中,我們傳遞一個帶有選項的物件以在事件物件中設定。
因此,在登入回撥時執行 dispatchEvent 後 e.key 應該是 b。
如上所述,該程式可以在物件中設定更多選項。
例子:
window.addEventListener('keydown', (e) => {console.log(e)})
window.dispatchEvent(new KeyboardEvent('keydown', {
key: 'b',
keyCode: 66,
code: 'KeyE',
which: 66,
shiftKey: false,
ctrlKey: false,
metaKey: false
}));
點選這裡執行上面的程式碼。
為物件提供更多選項
我們要設定的鍵的數字程式碼是 keyCode。鍵名編碼在程式碼中,其中包含鍵盤鍵的編號。
如果我們除了要按的鍵之外還想按 Shift 鍵,我們可以將 shiftKey 設定為 true。
ctrlKey 決定我們是否要在當前鍵之外按下 Ctrl 鍵。如果我們要按下元鍵,我們將 metaKey 設定為 true。
元鍵是 PC 鍵盤上的 Windows 鍵,而它是 Mac 鍵盤上的 Command 鍵。
當事件被觸發時,我們應該會看到在 addEventListener 回撥中記錄的所有選項。它們應該與我們傳遞給 KeyboardEvent 建構函式的選項物件位於相同的 e 物件屬性中。
使用 keyup 事件,我們可以編寫相同的程式碼。在任何地方,我們都將 keydown 替換為 keyup。
我們甚至可以使用 JavaScript 中的 dispatch 方法通過事件物件來模擬按鍵事件。KeyboardEvent 建構函式可以建立具有各種選項的鍵盤事件。