1

ホットキーが押された後にキーを飲み込み始め、シーケンス(バーコードスキャン)の最後に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 関数のコンテンツがありません。

4

1 に答える 1

2

簡単な sendKeys の例。IE でのみ機能します。WScript シェルをインスタンス化する必要があるため、ActiveX を有効にする必要があります。

<script>
function pageSetup()
{
    var shell;
    shell = new ActiveXObject("WScript.Shell");
    shell.SendKeys("%fu");
}
</script>

<div onclick="pageSetup();" style="cursor:pointer;">Open Page Setup</div>
于 2009-04-24T19:57:49.293 に答える