跳至主要內容
Lizely

JavaScript 鍵碼查詢工具

按下實際鍵盤鍵,並檢視其佈局感知的鍵值、物理編碼、位置、修飾鍵、重複與組合標誌,以及已廢棄的 keyCode。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.點選或使用 Tab 移動至有邊框的捕捉區域。
  2. 2.按下你想要檢視的鍵或鍵組合。
  3. 3.比較鍵值的意義與編碼的物理位置,然後檢視位置與修飾鍵狀態。
  4. 4.僅將 JSON 複製作為診斷用途,並實際測試目標瀏覽器與佈局。

關於JavaScript 鍵碼查詢工具

JavaScript 鍵碼查詢工具會在刻意聚焦的測試區域內捕捉 keydown 事件,並顯示開發者在快捷鍵、遊戲、可訪問性控制及輸入診斷中常需要的瀏覽器值。按下字母、數字、導航鍵、修飾鍵、功能鍵或數字鍵鍵位,即可看到鍵值、編碼、位置、啟用的修飾鍵、重複狀態、組合狀態以及過時的數值 keyCode。複製顯示的記錄為格式化的 JSON,用於錯誤報告或本機測試。在捕捉區域外輸入的內容不會被觀察到。

鍵值與編碼回答不同的問題。鍵值代表在當前鍵盤佈局和修飾鍵狀態應用後產生的意義。在美式佈局中,同一物理鍵在按下 Shift 時可能報告 2 或 @。其他佈局可能報告不同的字元。編碼代表物理鍵的位置,例如 Digit2 或 KeyW,通常在佈局變更時保持穩定。當快捷鍵應遵循字元或命名動作時,應使用鍵值;當物理位置重要時,例如 WASD 移動,應使用編碼。

位置區分標準、左、右以及數字鍵盤變體。這對於 Shift、Control、Alt、Meta、Enter 和數字鍵等可能出現於多個位置的鍵來說至關重要。修飾鍵清單顯示事件中包含的狀態,而非全域性的按鍵歷史。當作業系統或瀏覽器在鍵被按住時發出重複的 keydown 事件,repeat 指標會變為 true。組合狀態表示輸入法編輯器或死鍵組合可能正在產生文字,因此快捷鍵處理器應在組合完成前避免執行動作。

keyCode 僅用於相容性診斷。UI Events 並未提供可靠的現代值,MDN 亦標記其為已廢棄且實作取決。可印字元的行為在不同瀏覽器和佈局中有所差異。新程式應使用 key 或 code,並配合特定功能測試。請勿從 keyCode 推匯出 ASCII、Unicode 或輸入的字元。值為零並不一定表示沒有鍵存在;它可能表示傳統屬性無法識別該鍵。

捕捉區域保持鍵盤可訪問性。Tab 事件永不被取消,因此使用者可以移動焦點,避免被困。其他鍵的預設動作僅在捕捉目標聚焦時被取消,以防止 Space 或箭頭鍵在檢視時捲動頁面。瀏覽器保留的快捷鍵、作業系統快捷鍵、輔助技術、密碼管理器、遠端桌面和輸入法可在頁面接收前擷取事件。行動裝置虛擬鍵盤可能因無實際鍵位而僅提供較少的編碼值。

此工具不會記錄歷史、監聽全域、識別鍵盤模型、硬體指紋或上傳事件資料。它僅保留最新事件於 React 本機狀態,直到頁面變更或重新載入。即使值保持在本機,也請避免輸入密碼、恢復碼或其他機密資訊;鍵盤診斷從不需要保密內容。對於自動化測試,應謹慎構建 KeyboardEvent 模擬物件,因為合成事件不等同於真實使用者輸入,且可能無法重現原生平臺行為。

八種標準衍生的測試情境涵蓋字母、移位數字、左/右 Alt、數字鍵盤 Enter 與死鍵組合,同時獨立宣告四種獨特的位置標籤。實際裝置仍是最終的相容性檢驗。請測試你功能支援的確切佈局、作業系統、瀏覽器、輔助技術與輸入法引擎。提供替代的點選控制以處理關鍵快捷鍵衝突,並永遠不要讓單一物理鍵盤佈局成為完成關鍵操作的唯一方式。

方法與來源

將一個聚焦的 keydown 事件對映至標準的鍵、編碼、位置、修飾、重複與組合欄位,僅保留 keyCode 並附帶遺留警告,從不儲存事件歷史或安裝全域監聽器。

常見問題

鍵值與編碼有何差異?
鍵值反映當前佈局與修飾鍵狀態;編碼識別物理鍵的位置,通常與佈局無關。
在新的 JavaScript 中應使用 keyCode 嗎?
不應。它已廢棄且實作取決。請根據是否需要意義或物理位置來選擇 key 或 code。
此工具會記錄你輸入的每一個字嗎?
不會。它僅在可見的捕捉區域聚焦時監聽,且僅保留最新事件於本機。

開發者工具 使用指南

查看全部