簡體   English   中英

如何檢測生成的事件是屬於鍵盤、指針還是表單事件?

[英]How to detect if the event that is generated belongs to Keyboard, Pointer or Form Event?

我正在開發一個記錄事件並重播它們的應用程序。 為此,我需要確定正在生成什么樣的事件,因為鼠標、鍵盤和表單事件的行為彼此不同。

現在我正在嘗試使用: e instanceof KeyboardEvent但這似乎不起作用。 識別它屬於哪個事件系列的更好方法是什么?

使用event.detail可以確定事件是按鍵事件還是鼠標事件

if (event.detail === 0) {
    // keypress event
} else {
    // mouse event
}

在這里閱讀更多 - https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail

鼠標和鍵盤事件的基本示例。 您只需將 eventListener 添加到所需的 dom 元素。 然后你必須檢查觸發的事件eMouseEvent的實例還是KeyboardEvent

 const button = document.getElementById('mouse'); button.addEventListener('mousedown', (e) => { if (e instanceof MouseEvent) { console.log('a mouse event'); } }); const inputField = document.getElementById('keyboard'); inputField.addEventListener('keydown', (e) => { if (e instanceof KeyboardEvent) { console.log('a keyboard event'); } });
 <button id="mouse">MouseButton</button> <input id="keyboard">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM