我有一个功能,在按下热键后开始吞噬键,并在序列结束时触发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特定的)。当前的implimentation使用jQuery,但是我们的代码没有sendkeys函数的任何内容。
答案 0 :(得分:2)
简单的sendKeys示例,仅适用于IE。您必须在实例化WScript Shell时启用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>