gpt4 book ai didi

javascript - 按下键码不返回预期的字符串值

转载 作者:行者123 更新时间:2023-11-30 11:53:14 27 4
gpt4 key购买 nike

我在我的应用程序中使用了 iframe。当我按下键盘上的任意键时,我有返回字符串值。

除键 219 ,220, 221 外,所有其他键均返回预期的字符串值。

这些键返回"Û", "Û", "Ý"这些值。

但我期望 "[", "]", "\" 这些字符串值。

如何从这些键中获取正确的字符?

最佳答案

keydownkeyup 使用的键码可能因键盘而异,具体取决于您输入的键盘类型(不同地区的不同键盘等)。

对于可打印字符,您需要等待浏览器发出 keypress,这会为您提供字符键的翻译值(如果有的话),它在 charCode 中为您提供(尽管偏执地我倾向于执行 e.charCode || e.which;也许这很愚蠢)。例如,我的键盘上有一个键,在 *nix 下我配置它的方式是 keydown/keyup 的键码 220 并生成字符 £ 。但是在运行具有不同键盘布局的 Windows 的虚拟机中,相同的键是 keydown/keyup 的键码 220,但会生成字符 #

例子:

function handler(e) {
var msg = "Received " + e.type;
if (e.type === "keypress") {
// keypress
msg += " '" + String.fromCharCode(e.charCode || e.which) + "'";
} else {
// keydown/keyup
msg += " " + (e.which || e.keyCode);
}
console.log(msg);
}
document.addEventListener("keydown", handler, false);
document.addEventListener("keyup", handler, false);
document.addEventListener("keypress", handler, false);
Click here to focus the document, then press keys.

关于javascript - 按下键码不返回预期的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com