You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中已废弃的keyCode应替换为何值?相关代码如何修改?

解决方案

替换后的代码

优先使用标准化的code属性匹配物理按键,修改后代码如下:

document.addEventListener('keyup', function (e) {
    e.preventDefault();
    if (e.code === 'Slash') {
        document.getElementById('search-input').focus()
    }
})

如果你的需求是只有输入字符为/时才触发(按住shift按该键输入?时不触发),可以替换为判断e.key === '/':

document.addEventListener('keyup', function (e) {
    e.preventDefault();
    if (e.key === '/') {
        document.getElementById('search-input').focus()
    }
})

是否有必要替换

  • 临时项目、不需要兼容多键盘布局的场景下,不替换也可正常运行:目前所有主流浏览器的现存版本都还保留了keyCode的向后兼容,不会直接报错。
  • 长期维护的公开项目强烈建议替换:
    • keyCode已经被正式从W3C DOM标准中移除,未来浏览器版本随时可能停止对该属性的支持
    • keyCode的返回值在不同语言、不同布局的键盘上会出现不一致的问题,code和key是标准化属性,多环境下的表现更稳定
    • 可以消除编辑器的deprecated告警,提升代码可维护性

内容的提问来源于stack exchange,提问作者user16735766

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:45:04