除了这两种方法之外,还有其他方法可以使用键码编写文本吗?但是,以下方法的坏处是它们无法处理shift + a
...
一、方法
使用一个 json-object 填充键码和字符,然后在迭代它们时重建文本并与键入的键码进行比较。
示例(仅用于演示目的):
var chars = {
65: 'a',
66: 'b',
67: 'c',
68: 'd',
69: 'e'
etc..
},
keys = {};
...push some keycodes to `keys`-array...
e.g: keys[(+new Date())] = 65;
keys[(+new Date())] = 66;
keys[(+new Date())] = 67;
...fill the output-string
var mark = null,
timeout = 0,
str = "";
for(var t in keys) {
if(mark) {
timeout = tS - mark;
} else {
timeout = 0;
mark = tS;
}
setTimeout(function(){
str += keys[t];
}, timeout);
}
...return the string:
elem.text(str);
2.方法
创建一个空/阴影input
并将其中的值填充到一个字符串中(我不会进一步解释这个方法,你可以在这里阅读:https ://stackoverflow.com/a/8072440/1250044
3.方法
不是真正的方法,但应该注意:
var str = String.fromCharCode(e.which);
一个好方法
我认为最好的方法是触发keyevent
这样的:
$(document).trigger({type: 'keydown', which: x});
缺点是,这不会触发真正的keydown
,所以这样写是不可能的。