gpt4 book ai didi

javascript - HTML keyup/keydown 有很多方法来检测按键类型。我应该使用哪个?

转载 作者:行者123 更新时间:2023-12-02 21:01:06 25 4
gpt4 key购买 nike

因此,当我有 document.onkeyup = (e) => console.log(e); 时,我有太多选项来确定按下哪个键:

 key:"Enter",
code: "Enter",
keyCode: 13,
which: 13,
charCode: 0, //This is always 0 even when typing "A" or "9"

我一直在使用:

if(ev.key === "Enter" || ev.code === "Enter" || ev.keyCode === 13 || ev.which === 13) //Enter KEY

但是用每个字符(我决定按键绑定(bind))来完成此操作会累加。

有没有更好的方法来确定每个字符?
为什么有 4 个不同的选项?
哪一个最适合整体兼容性?
charCode 有何用途?

最佳答案

根据 Mozilla 的 Keyboard Event documentation ,这是属性列表及其状态:

  Safe |   Not safe     ------|---------------   code | charCode        key  | keyCode              | keyIdentifier        | which  

看起来他们不鼓励使用任何形式的数字代码,假设它们不稳定。

我个人最喜欢的是 event.code,原因之一:空格字符被描述为 Space,而 event.key空格键是""。如果你问我的话,可读性不太好。

话虽这么说,但在某些用例中我更喜欢 event.key,尤其是当我只关心字母数字字符时。使用 "a""7" (event.key) 比使用 "KeyA"“Digit7” (event.code)。

总而言之,只有 keycode 被认为是安全的(但是其他大多数都可以工作),而 code 更具描述性,而如果您需要按键进行实际输入,则 key 更容易使用。

关于javascript - HTML keyup/keydown 有很多方法来检测按键类型。我应该使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61354031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com