按鍵計數器是一種瀏覽器工具,會記錄你送進已聚焦的擷取區域的每一次按鍵事件,為你提供累計總計、最後十個按鍵的清單,以及每個按鍵出現次數的排序表。對初學者來說,最簡單的描述方式是:點擊虛線框、按幾個中性測試鍵,然後即時觀察數字更新。有別於會點亮實體鍵盤佈局以找出故障按鍵的鍵盤測試器,計數器只在乎數量與分佈——瀏覽器接受了多少事件、最常出現哪些鍵名稱、以及它們依什麼順序送達。整個工具都跑在你目前的分頁裡,只在擷取區域可見且擁有焦點時才會監聽,絕不會上傳你按下的任何內容。Tab 鍵保持自由,因此鍵盤使用者隨時都能移開焦點而不會卡住。
如果你從未用過這類工具,心智模型比較接近計數器而非打字測試:每一次被接受的事件就會讓累計總計加一,相同的鍵名稱會在其頻率對應的位置加一,最近十個鍵名稱則會滑進一份能一目了然的短暫紀錄。沒有評分、不會出現每分鐘字數,也不會診斷任何硬體——你只是看到瀏覽器所回報的內容,以及它回報的順序。

這個計數器在你的瀏覽器中究竟計算了什麼
初學者常以為計數器是在「讀取鍵盤」。它並非如此。它只監聽一個特定的瀏覽器事件,叫做 keydown,而且只在 按鍵計數器 內部可見的擷取區域擁有鍵盤焦點時才會作用。點進虛線框、輸入,計數器就會回應。點到頁面的其他地方或切換到其他應用程式,計數器就會完全停止接收事件。
這個焦點界線是最重要的一條規則。這正是為什麼頁面很小、為什麼擷取區域標示得很清楚,也正是為什麼在其他地方按下的按鍵不會出現在你的總計中。這同時說明了計數器為何不適合作為安全工具:它只看見你刻意送進去的內容,而且無法得知事件是來自你的手指、自動化腳本、輔助工具,還是遠端桌面工作階段。
鍵名稱來自瀏覽器的 KeyboardEvent key 值,接著經過一道小型清理程序。實際的空白字元會顯示為「Space」。單一可見字母在語系支援轉換時會變成大寫。像 ArrowUp、Enter 或 Escape 這類命名值則保持可讀。控制字元、代理碼點,以及 Unicode 的換行或段落分隔符都會被去除。如果清理後沒有任何內容存活,鍵名稱就會變成「Unknown」。鍵名稱也會被限制在四十個 Unicode 碼點以內,以防止格式錯誤的合成事件用垃圾資料塞滿頁面上的表格。
實務上的意義是:別因為按下空白鍵卻顯示「Space」而非空白而擔心——這是設計上的結果。不要期待計數器會辨識你的鍵盤型號、點亮 QWERTY 佈局,或回報是哪個實體按鍵被觸發。那些工作是鍵盤測試器的責任,不是計數器。
頁面上的三種顯示
一旦你開始按鍵,三種讀數就會即時更新。每種回答不同的問題,把它們一起讀才能掌握你的工作階段。
| 顯示 | 它顯示的內容 | 最適合回答的問題 |
|---|---|---|
| 總計 | 每一個被接受的 keydown 事件的計數 | 「瀏覽器到目前為止看到了多少事件?」 |
| 最近十個鍵名稱 | 依到達順序排列的最後十個被接受鍵名稱 | 「我剛剛按了什麼?」 |
| 頻率表 | 本次工作階段中出現過的每個鍵名稱,依計數由高到低排序 | 「瀏覽器最常接受哪個鍵?」 |
總計與頻率表會在整個工作階段中同步成長。最近清單永遠只保留十個項目——第十一個被接受的鍵名稱會把最舊的擠出去。這代表頻率表才是累計分布的最終依據,而最近清單則是用來觀察最後幾次按鍵中的模式,例如確認「A、Space、A、Space、A」這個序列產生了三個 A 和兩個 Space,而不必捲動瀏覽冗長的紀錄。
頻率表先依計數由高到低排序,若計數相同則依鍵名稱排序以保持穩定。這個排序規則很重要:如果有兩個鍵的計數相同,表格不會在每次新事件到達時重新洗牌,因此資料列保持易讀。
三步驟完成你的第一次工作階段
最快熟悉的方式是用幾顆中性鍵跑一輪短而明確的工作階段。使用字母或符號——絕對不要使用密碼、復原碼或個人訊息。
- 點擊虛線擷取區域。可見的焦點外框會確認該區域已就緒。從這一刻起,直到焦點離開,你在這裡產生的 keydown 事件都會被計數。
- 按下中性測試鍵。輕按幾個字母、一個 Space、一個 Enter、一個方向鍵——任何你不介意出現在頻率表中的按鍵。無論何時你想停止計數,請按 Tab 來乾淨地將焦點移出擷取區域。
- 讀取顯示,然後重設。觀察總計攀升、最近十個清單捲動、頻率表逐漸填入。當你想要全新狀態時,使用 Reset counter 控制項一鍵清除總計、頻率表與最近紀錄。
這就是完整的工作流程:聚焦、按鍵、讀取、重設。工具中的其他功能——重複切換、鍵名稱正規化、頻率排序——都是為了讓這三個步驟表現得可預期而設計的。
按住按鍵的重複事件與切換
按住按鍵是初學者最容易感到意外的地方。當你按住一個字母時,瀏覽器通常會先送出一個初始的 keydown 事件,然後在按鍵持續按住期間送出一串標記為 repeat 的額外事件。預設情況下,計數器會忽略這些重複事件,因此一次實體按住只算一次。
重複切換存在的目的是處理那些你正好想觀察這種事件串的情境——例如想看一顆被按住的鍵在固定時間內會產生多少事件,或針對同一個手勢比較預設與包含重複的總計。打開切換後,每一個收到的重複事件也會讓總計與該鍵的頻率列遞增。關閉切換後,你就回到每次實體按住算一次。
| 重複切換 | 計算的內容 | 典型的使用理由 |
|---|---|---|
| 關閉(預設) | 每次實體按住算一次,不管瀏覽器送出多少重複事件 | 隨意計數、手指暖身、簡單的「我按了幾個鍵」問題 |
| 開啟 | 瀏覽器送出的每一個 keydown 事件,包含標記為 repeat 的事件 | 調查按住按鍵的行為、比較包含重複的總計、腳本輸入 |
這裡有幾點需要注意。計數器信任瀏覽器的 repeat 旗標——它不會量測實體的防彈跳時間,也不會自行判斷重複是來自被按住的手指、鍵盤彈跳、自動化,還是輔助軟體。如果你想比較兩次執行,請使用同一個瀏覽器、同一個切換設定,以及大致相同的輸入節奏,否則總計將無法相互比較。想更深入了解計數器究竟在量測什麼、不在量測什麼,按鍵計數器準確度指南 會逐一說明其精確的限制。
讓計數保持誠實的初學者習慣
一張簡短的習慣清單能讓你的前幾次工作階段更順利,也讓數字可以重現。
- 每次都要點進擷取區域。計數器只在焦點位於虛線框內時才會監聽。如果你的總計停止攀升,焦點幾乎肯定已經移開。
- 使用 Tab 離開,而不是其他鍵。Tab 刻意不列入計數,讓鍵盤使用者有退出的方式。其他按鍵仍會觸發計數器的預設動作阻止機制,這雖然有用,但偶爾會讓你意外。
- 絕對不要輸入敏感內容。密碼、復原碼、私密訊息,以及任何你不希望以明碼儲存的內容,都不應該出現在任何測試區域中,包括這個——即使工具本身不會上傳、不會儲存到帳號,也不會在重新整理後保留任何內容。
- 每次比較都使用同一個瀏覽器與同一個切換設定。輸入法、輔助工具、遠端桌面軟體和螢幕鍵盤都會影響瀏覽器收到的事件。不同的瀏覽器或不同的重複切換設定,即使面對相同的實體輸入,也不會產生相同的總計。
- 重新整理分頁以清空所有內容。Reset counter 會在應用程式內清除工作階段,但如果想要從零開始且完全不帶任何殘留,重新整理才能保證完全全新的狀態。
這些習慣對使用計數器來說並非必要,但每一項都能消除初學者第一次工作階段常會碰到的小混亂來源。
計數器不適用的時機
了解計數器刻意不做哪些事很有幫助,如此當問題改變時,你才能選擇正確的工具。計數器不會計算每分鐘字數、不會評分準確率、不會繪製實體鍵盤佈局、不會辨識鍵盤型號、不會測試個別按鍵軸,也不會診斷彈跳、鬼鍵或損壞的按鍵。它也無法告訴你被按住的按鍵在硬體層級產生的重複次數是多還是少——它只回報瀏覽器所標記的內容。
針對按鍵軸層級的問題,請使用會點亮佈局、幫助定位有產生或未產生事件之按鍵的 鍵盤測試器。如果是速度與準確率相關的工作,打字測試更為合適。如果要比較大量的點擊量,CPS 測試會回報每秒點擊數,而不是試著從按鍵計數中重建資料。
如果是計算按鍵——總計、分布、最近順序、重複行為——按鍵計數器就派上用場。一旦你用幾顆中性鍵跑了幾輪短工作階段,整個流程就會變成肌肉記憶:聚焦、按鍵、讀取、重設、重複。
如果你正在權衡選項,如何檢視你的編織段數計數器結果 對此有詳細說明。