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
。另外,看一看。我将很快添加有关此类跨浏览器不兼容的信息!