これら 2 つの方法以外に、キーコードを使用してテキストを書き込む方法はありますか? ただし、以下の方法による悪い点は、次のようなショートカットを処理できないことshift + a
です...
1.方法
キーコードと文字で満たされた json オブジェクトを使用し、それらを繰り返しながらテキストを再構築し、入力されたキーコードと比較します。
例(デモンストレーション目的のみ) :
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
ないことです。そのため、この方法で書くことはできません。