为了账号安全,请及时绑定邮箱和手机立即绑定

对 Javascript 的“.keyCode 属性”的当前状态感到困惑

对 Javascript 的“.keyCode 属性”的当前状态感到困惑

FFIVE 2021-11-12 14:55:46
无法为我的问题找到真正可靠的答案。不推荐使用 Javascript 的属性“KeyboardEvent.keyCode”吗?Jetbrains IDE 的“PHP-STORM”和“WEB-STORM”表示已弃用,但是,它们别无选择。因为我的 IDE 告诉我它已被弃用,所以我用谷歌搜索它并发现 W3Schools,在 url: ( https://www.w3schools.com/jsref/event_key_keycode.asp ),没有声明它被弃用。通过阅读他们专门针对 .keyCode 属性的页面,人们会认为它很好用。再说一遍,它被贬低了吗?如果它被弃用,那么它们是一种替代方法,还是一种返回用户按下的键值的变通方法?
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

来自 MDN(https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode):

已弃用的 KeyboardEvent.keyCode 只读属性表示一个系统和实现相关的数字代码,用于标识按下的键的未修改值。这通常是与密钥对应的十进制 ASCII (RFC 20) 或 Windows 1252 代码。如果无法识别密钥,则此值为 0。

如果可能,您应该避免使用它;它已被弃用一段时间。相反,您应该使用 KeyboardEvent.code(如果已实现)。不幸的是,某些浏览器仍然没有它,因此您必须小心确保使用所有目标浏览器都支持的浏览器。


查看完整回答
反对 回复 2021-11-12
?
波斯汪

TA贡献1811条经验 获得超4个赞

上面评论中所述的 .key 属性对我有用,因为它没有被弃用,并且可以在我正在测试的所有浏览器中使用(chrome 77.0.3865.90[desktop] 和 77.0.3865.92[Iphone]6s what ever safari is on my Iphone6s、firefox 68.0.1 和通过 jetbrains android 模拟器 [firefox 68.1.1] 以及在带有 IE10 和 edge 的 Windows 10 上。keyCode 只在使用 chrome 时出现了一些小问题,出于某种原因,我有时会遇到类型错误. 说实话,我真的很希望能在这个话题上得到一个很好的答案,但几天过去了,我一无所获。由于关于这个主题的内容很少,我想我会扔掉对我有用的东西,然而; key 不适用于所有应用程序。我读过它对于特定于非英语语言的键盘来说不是一个好的选择,因为它以字符串格式返回键的名称,而不是 ASCII 码。


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信