Keypress事件监听器无法在Mozilla SDK中运行

时间:2014-10-22 18:15:01

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在使用Addon SDK 1.17和Firefox 33。

我正在尝试在插件中实现类似于aardvark的内容。

在我的内容脚本中,我有这个,进行设置:

self.on('message', function onMessage(activation, totarget) {
  document.addEventListener("click", onMouseClick, true);
  document.addEventListener("keypress", onKeyPress, true);
  document.addEventListener("mousemove", onMouseMove, true);
});

到目前为止onKeyPress函数是这样的:

function onKeyPress(event) {
  console.log('key pressed');
}

我已尝试将上述内容放入普通的html页面中:

<html>
  <body>
    <script>
      function onKeyPress(event) {
        console.log('key pressed')
      }
      document.addEventListener("keypress", onKeyPress, true);
    </script>
  </body>
</html>

并且控制台快乐地记录我的按键。

我无法理解为什么这在我的插件中不起作用,因为其他鼠标和点击事件工作得很好。

我尝试将听众附加到window,然后听keydown,但无济于事。

我也尝试将其导出为xpi并将其安装在我的主Firefox中,但没有骰子

发生了什么事?

1 个答案:

答案 0 :(得分:2)

事实证明,我不知道隐藏面板我激活了处理程序,无法将焦点恢复到主窗口。

激活处理程序后执行window.focus();修复了问题。