1 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
我只是想說(shuō),這個(gè)問(wèn)題變成了一次有趣的學(xué)習(xí)冒險(xiǎn)。但....
您正在使用已棄用的 API。
事實(shí)證明KeyboardEvent.keyCode已被棄用一段時(shí)間了。因?yàn)樗褂檬M(jìn)制版本的 ASCII。使用的正確代碼實(shí)際上是event.Code
.?但這不是你所追求的。
要獲取 ascii 數(shù)字,您可以使用event.key.charCodeAt()
這確實(shí)有一些缺陷,因?yàn)樗鼤?huì)S
在您按 Shift 時(shí)報(bào)告。但您可以用來(lái)event.location
判斷該鍵是否是特殊的控制鍵。0 是標(biāo)準(zhǔn)鍵,1-3 是特殊位置(我認(rèn)為)。
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>
添加回答
舉報(bào)