Javascript fromCharCode键码

Javascript fromCharCode键码,javascript,Javascript,我需要一些东西的钥匙码,但我不知道它是什么类型的钥匙码,我在其他任何地方都找不到 function keyDown(e) { if (String.fromCharCode(e.keyCode) == "%") isLeft = true; if (String.fromCharCode(e.keyCode) == "'") isRight = true; } function keyUp(e) { if (String.fromCharCode(e.keyCode) == "%

我需要一些东西的钥匙码,但我不知道它是什么类型的钥匙码,我在其他任何地方都找不到

 function keyDown(e) {
  if (String.fromCharCode(e.keyCode) == "%") isLeft = true;
  if (String.fromCharCode(e.keyCode) == "'") isRight = true;
}

function keyUp(e) {
  if (String.fromCharCode(e.keyCode) == "%") isLeft = false;
  if (String.fromCharCode(e.keyCode) == "'") isRight = false;



}
我发现%是左箭头,而'是右箭头,有人能告诉我这是什么类型的键码吗?或者我怎样才能把它改成更好的


谢谢:)

您可以使用e.key,它返回按下的键的值。因此,如果您按左箭头键
e.key
将是
“ArrowLeft”
,如果您按右箭头键
e.key
将是
“ArrowRight”

,您可以通过谷歌搜索“javascript键码”轻松找到键码值,或者只需使用以下网站:

左箭头键代码为37,右箭头键代码为39

在代码中,您将
e.keyCode
转换为ASCII字符,这是不必要的。毫不奇怪,ASCII字符#37是
%
,#39是

只需直接比较keycode值:

function keyDown(e) {
    if (e.keyCode == 37) isLeft = true;
    if (e.keyCode == 39) isRight = true;
}

function keyUp(e) {
    if (e.keyCode == 37) isLeft = false;
    if (e.keyCode == 39) isRight = false;
}
function keyDown(e) {
  if (e.keyCode === 37) isLeft = true;
  if (e.keyCode === 39) isRight = true;
}

function keyUp(e) {
  if (e.keyCode === 37) isLeft = false;
  if (e.keyCode === 39) isRight = false;
}

您可以查找这些代码

在此处以交互方式检查它们:或

然后,函数
String.fromCharCode
将unicode数字转换为字符

对于跨浏览器兼容性,您可能需要检查
e.which
e.keyCode
属性,如下所示

function(e) {
  e = e || window.event;
  var keyCode= e.which || e.keyCode;
  var charStr = String.fromCharCode(keyCode);
  alert("The keycode is: "+ keyCode + " and charCode is: " + charStr);
}

您不需要获取这些关键代码的字符,您可以直接比较它们:

function keyDown(e) {
    if (e.keyCode == 37) isLeft = true;
    if (e.keyCode == 39) isRight = true;
}

function keyUp(e) {
    if (e.keyCode == 37) isLeft = false;
    if (e.keyCode == 39) isRight = false;
}
function keyDown(e) {
  if (e.keyCode === 37) isLeft = true;
  if (e.keyCode === 39) isRight = true;
}

function keyUp(e) {
  if (e.keyCode === 37) isLeft = false;
  if (e.keyCode === 39) isRight = false;
}

无论如何,请记住
e.keyCode
已被弃用,因此应改用
e.key
e.code
,这也使代码更容易理解。此外,您还可以使用具有
布尔属性的
对象
,而不是单个布尔属性,以便更好地缩放到更多关键点:

const pressedKeys={};
document.onkeydown=({key})=>{
按按键[按键]=真;
console.log(Object.keys(pressedKeys.join)('+');
};
document.onkeyup=({key})=>{
删除按键[按键];
console.log(Object.keys(pressedKeys.join)('+');

};
注意,一些旧浏览器使用非标准代码,因此IE上的
'Left'
'Right'
就是这些代码。
e.keyCode
已被弃用
e.key
e.code
应改为使用,这也使代码更容易理解。请记住,一些旧浏览器使用的是非标准代码,所以左键通常是
LeftArrow
,右键是
RightArrow
,但在IE上它只是
left
right
。另外,看一看。我将很快添加有关此类跨浏览器不兼容的信息!