1 回答

TA貢獻1821條經驗 獲得超6個贊
我只是想說,這個問題變成了一次有趣的學習冒險。但....
您正在使用已棄用的 API。
事實證明KeyboardEvent.keyCode已被棄用一段時間了。因為它使用十進制版本的 ASCII。使用的正確代碼實際上是event.Code
.?但這不是你所追求的。
要獲取 ascii 數字,您可以使用event.key.charCodeAt()
這確實有一些缺陷,因為它會S
在您按 Shift 時報告。但您可以用來event.location
判斷該鍵是否是特殊的控制鍵。0 是標準鍵,1-3 是特殊位置(我認為)。
document.addEventListener("keyup", function(e) {
? document.querySelector(".key").innerHTML = e.key;
? document.querySelector(".keyCode").innerHTML = e.code;
? document.querySelector(".ascii").innerHTML = e.key.charCodeAt()
? document.querySelector(".UTF").innerHTML = String.fromCharCode(event.key.charCodeAt());
});
code {
? background-color: #e2aec8ab;
? ;
? border: solid 1px gray;
? border-radius: 3px;
? padding: 0 .5em;
? min-height: 1em;
? min-width: .2em;
? margin: 0 .1em;
}
.output {
? margin: 2em;
? border: solid 1px lightgray;
? border-radius: 3px;
? background-color: rgba(200, 250, 230, .3);
? padding: 1em;
}
Type here. Try some alpha letters as well as special keys like <code>`</code>
<code>-</code>
<code>=</code>
<code>[</code>
<code>]</code>
<code>[ENTER]</code>
<code>;</code>
<code>'</code>
<div class="output">
? You typed <code class="key"></code> which is Javascript <b>keyCode</b> <code class="keyCode"></code>, in ASCII that would be <code class="ascii"> </code> which is <code class="UTF"></code>
</div>
添加回答
舉報