如何将xul窗口注册为另一个窗口的监听器?

时间:2011-02-07 19:14:50

标签: xul keylistener

我有一个keylistener接收一个函数,并在按下一个键时调用它:

function addKeyListener(functionToCall) {
    addKeyEvent("keypress", function() { functionToCall(arguments[0]) }, false);
}

我可以传递给该函数以使我的窗口成为一个keylistener吗?

2 个答案:

答案 0 :(得分:0)

我不太确定您的代码段正在尝试实现什么,但如果您有对另一个窗口的引用,并且您想要侦听该窗口上的关键事件,只需使用otherWindow.addEventListener("keypress", eventHandler, false);即可。

答案 1 :(得分:0)

好的,所以在您澄清的情况下,看起来您需要执行以下操作:

  1. 在其他窗口中找到焦点文档:otherWindow.document.commandDispatcher.focusedWindow.document
  2. 创建关键事件:otherDocument.createEvent('KeyEvents')
  3. 从关键事件
  4. 初始化事件(类型,代码,修饰符等)
  5. 在另一个窗口中找到焦点元素(如果有): otherWindow.document.commandDispatcher.focusedElement
  6. 将事件发送到焦点元素,如果没有元素具有焦点,则发送文档。