0

除了这两种方法之外,还有其他方法可以使用键码编写文本吗?但是,以下方法的坏处是它们无法处理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,所以这样写是不可能的。

4

0 回答 0