javascript - 在不使用 switch 语句的情况下按下键盘按钮时按名称提醒字母

标签 javascript

这里我有一段简单的代码。我希望它在按下键盘上代表这些字母的按钮时提醒字母 [A-Z]。到目前为止,它只提醒 keyCodes。我知道我可以通过 switch 语句来做到这一点。但是它将是一大段 switch 语句。所以我的问题是:

1.有没有一种方法可以在按键时按字母名称提醒每个字母,而无需使用 switch 语句?

2.左、右、上、下箭头键没有提醒其键码编号。为什么会这样?我该如何克服这个问题?

(function(){
    document.body.addEventListener('keypress',function(e){
            alert(e.keyCode);
    });
})();

最佳答案

要显示其 keyCode 中的字母:

alert (String.fromCharCode(e.keyCode));

要解决箭头键不显示 keyCode (37 - 40) 的问题:

(function(){
    document.body.addEventListener('keyup',function(e){
      // the keyCodes of the arrow keys, matched to an appropriate
      // unicode arrow symbol:
      var directionals = {
        '38' : 8593, // String.fromCharCode(38) => &
        '39' : 8594, // String.fromCharCode(39) => '
        '40' : 8595, // String.fromCharCode(40) => (
        '37' : 8592 // String.fromCharCode(37) => %
      },
          // if there is a falsey value from directionals object,
          // we use the e.keyCode unchanged; otherwise we substitute
          // e.keyCode for the above-supplied arrow-character:
          keyCodeToUse = !directionals[e.keyCode] ? e.keyCode : directionals[e.keyCode];
      // I don't like alerts; to access the console (in most browsers) press 'F12':
      console.log(String.fromCharCode(keyCodeToUse));
    });
})();
html, body {
  background-color: rgba(255,255,180, 0.5);
  height: 100%;
}

问题本身是(无论出于何种原因)箭头键仅在 keyupkeydown 上返回 keyCode,在 按键。此外,使用其键码(如上面的 JavaScript 所示)的 String.fromCharCode() 返回的字符实际上不是箭头。因此,我们必须使用备用 Unicode 引用(上面在 JavaScript 中提供)。

引用文献:

关于javascript - 在不使用 switch 语句的情况下按下键盘按钮时按名称提醒字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25973725/

相关文章:

javascript - 如何设置样式 html, body {height : 100%} programatically with vanilla javascript?

Javascript 对象初始化不起作用

javascript - Protractor 非 Angular Testing 不服从等待并休眠,直到代码中出现错误

javascript 命名函数表达式 - 范围可访问性

javascript - JavaScript 伪协议(protocol)实际上做了什么?

javascript - 当使用服务和 API 登录以在 MySQL 中获取时,Angularjs 在 $scope 中显示特定用户的动态 ID 和信息

javascript - 用于转义特殊字符的正则表达式

javascript - 将 JSON 渲染成 HTML

javascript - JavaScript内部方法实现源码

javascript - 在模式隐藏时,重置选择的内容(与日期时间选择器字段链接)