【问题标题】:JavaScript: What should keyCode be replaced with?JavaScript:应该用什么替换 keyCode?
【发布时间】:2021-08-25 13:44:45
【问题描述】:

这是js代码:

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

但在 Visual Studio 代码中说:keyCode 已弃用。 这段代码应该用什么替换?有必要这样做吗?

【问题讨论】:

标签: javascript keycode


【解决方案1】:

例如将其替换为e.key === 'Enter'e.code === 'Enter'。 您可以在herehere 找到更多相关信息。

【讨论】:

    【解决方案2】:

    使用e.key。它更易于使用,并且可以在每个浏览器中工作:

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

    【讨论】:

      【解决方案3】:

      MDN 文档声明如下:

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

      https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

      如果您需要支持较旧的浏览器(如 Internet Explorer),您可能需要使用功能检测来使用正确的浏览器。

      if (event.code !== undefined) {
          // Handle the event with KeyboardEvent.key
      }
      else if (event.keyCode !== undefined) {
          // Handle the event with KeyboardEvent.keyCode
      }
      

      【讨论】:

        猜你喜欢
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-29
        • 1970-01-01
        • 2013-08-21
        相关资源
        最近更新 更多