我尝试将击键转换为chracters。 在其他问题中,有人建议使用onkeydown函数,因为onkeypress因不同的字符而受到不同的影响。
我不知道如何处理像'''()这样的特殊字符,它们在世界各地的不同键盘中可能会有所不同。
答案 0 :(得分:7)
对于具有可打印字符等效项的键,您应该使用keypress
事件,因为您可以从keypress
事件中检索字符代码,这通常不可用于keyup
和{{keydown
1}}事件。
您需要的事件属性是which
和keyCode
- 几乎所有浏览器都有其中一个或两个,尽管IE使用keyCode
来代替字符代码,但有些其他浏览器返回(不同的)密钥代码。大多数非IE浏览器也有charCode
,但似乎所有此类浏览器都有which
,因此永远不需要charCode
。一个简单的例子:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
答案 1 :(得分:0)
document.onkeydown = checkKey;
function checkKey(e) {
e = e || window.event;
document.getElementById("label").style.display = "none";
if (e.keyCode == '65') {
//a
var lx = document.getElementById('location');
typeIt("a");
}
else if (e.keyCode == '66') {
//b
var lx = document.getElementById('location');
typeIt("b");
}
else if (e.keyCode == '67') {
//c
var lx = document.getElementById('location');
typeIt("c");
}
}
这应该成功地将您按下的键码转换为字符串字母,您可以在更大的功能中使用它。这需要更多的时间,但我发现它与大多数浏览器和键盘高度兼容(无论语言是什么。)我在文本编辑器项目中使用此代码,该项目将分发给几个国家的朋友,所以我确信它会工作。注意:上述功能仅包括字母" A"," B"和" C"。