Javascript 将键盘输入保存到变量中

Javascript 将键盘输入保存到变量中,javascript,firefox-addon,xul,Javascript,Firefox Addon,Xul,我编写了一个Firefox扩展,它从条形码标签扫描仪获取输入,调用一个页面并将其写入一个字段。扫描仪编程为在读取标签后发送击键。我在正在侦听CTRLK的窗口对象上添加了一个事件。我的问题是把注意力集中在文本框上,当它丢失时,它就不工作了。我的问题是:是否有可能在不使用textbox元素的情况下获取扫描标记的值?扫描仪输入通过键盘接口输入 browserverlay.xul: addEventListener(“keydown”,barcodeInit,false); 函数sel(){ var

我编写了一个Firefox扩展,它从条形码标签扫描仪获取输入,调用一个页面并将其写入一个字段。扫描仪编程为在读取标签后发送击键。我在正在侦听CTRLK的窗口对象上添加了一个事件。我的问题是把注意力集中在文本框上,当它丢失时,它就不工作了。我的问题是:是否有可能在不使用textbox元素的情况下获取扫描标记的值?扫描仪输入通过键盘接口输入

browserverlay.xul


addEventListener(“keydown”,barcodeInit,false);
函数sel(){
var textbox=document.getElementById(“editIndex”);
textbox.focus();
}

当我得到文本框内容时,我调用
openURI
方法在实际窗口中打开页面并进行编辑

browserverlay.js

if(event.ctrlKey&&pressedKey==prefKey){
if(编辑索引的类型!=“未定义”){
var dataString=“barcodeValue=“+editIndex;
immidate=true;
document.getElementById(“editIndex”).value=“”;
loadURI(stringURL,null,dataString,false);
}

您可以通过收听
窗口
对象上的
按键
事件来接收按键-只要浏览器窗口处于焦点状态,无论窗口的哪个元素处于活动状态,您都可以获得按键。大致如下:

var data = "";
window.addEventListener("keypress", processKeyPress, false);
window.addEventListener("keydown", processKeyDown, false);

function processKeyPress(event)
{
  data += String.fromCharCode(event.charCode);
}

function processKeyDown(event)
{
  if (event.ctrlKey && event.keyCode == prefKey)
  {
    var dataString = "barcodeValue=" + data;
    data = "";
    ...
  }
}

文档:

Hello Wladimir,收到您的回复真是太荣幸了!感谢我今天试用的提示广告给您反馈!谢谢您。再次感谢您,感谢您提供的代码片段,它工作得很好,正是我所需要的。现在我在状态栏中放置了一个图标,并寻找一个命令来禁用该插件,因为它写了所有内容数据变量中的输入。我在MDN中查找了allready,但找不到它。也许你有什么建议?Thanks@Wazlav76:请提出一个新问题并提供适当的描述,这不是我在评论中可以回答(甚至无法理解)的问题。@Wazlav76:如果答案有帮助,请随意接受: