ホットキーが押された後にキーを飲み込み始め、シーケンス(バーコードスキャン)の最後にAJAXプロセスを開始する機能があります。
問題は、ユーザーが誤ってホット キーを押した場合にどうなるかということです。
私の紙ナプキンの解決策は次のとおりです。
on hotkey: if(okay(true)) {buffer=""; ts=now(); consumekey();}
on EOTkey: if(okay(false)) {AJAX(buffer); consumekey();}
on datakey: if(okay(false)) {appendbuffer(key); consumekey();}
on otherkey: dumpbuffer();
var status=false;
var ts=0;
var buffer="";
function okay(bool state)
{
if (state && !status) || (!state && status && !timeout(ts) ) return true;
dumpbuffer();
}
function dumpbuffer()
{
mybuffer=buffer;
buffer="";
ts=0;
status=false;
sendkeys(mybuffer);
}
では、Javascript で sendkeys をどのように記述すればよいでしょうか。(ところで、これはIE固有のものである可能性があります)。現在の実装では jQuery を使用していますが、コードには sendkeys 関数のコンテンツがありません。