2011-02-07 12 views
0

私は機能を受信して​​、キーが押されたときにそれを呼び出すのKeyListenerを持っている:別のリスナーとしてxulウィンドウを登録するには?

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

は、私は私の窓はのKeyListenerなるようにするその機能に何を渡すことができますか?

答えて

0

あなたのコードスニペットが達成しようとしていることはよく分かりませんが、別のウィンドウへの参照があり、そのウィンドウでキーイベントを聴きたい場合は、単にotherWindow.addEventListener("keypress", eventHandler, false);を使用してください。あなたが次のことを行う必要があるかのように

+0

私は上記の機能を使用する現用システムを持っています。私はウィンドウに同じ機能を使用したいのですが、キーが押されたときにウィンドウ内でどの機能が呼び出されるのかわかりません。 –

+0

多分私は、キーイベントを取得し、そのイベントを使って私のウィンドウでキー押しを生成する関数を渡すことができます。 –

+0

私がキーイベントを扱っていないので、あなたが示唆したようにeventHandlerリスナーを追加できない理由はです。私はコンポーネントにキーのデフォルト処理をさせるだけです。キーが押された(他のウィンドウで)ことを私のウィンドウに通知するだけで、メインウィンドウで押されたかのように扱う必要があります。 –

0

OKは、ので、あなたの明確化を考えると、それが見えます:

  1. 他のウィンドウに集中文書を検索:otherWindow.document.commandDispatcher.focusedWindow.document
  2. は、キーイベントを作成します。otherDocument.createEvent('KeyEvents')
  3. キーイベントからイベント(タイプ、コード、修飾子など)を初期化する
  4. 他のウィンドウでフォーカスされた要素がある場合は、それを見つけます。 otherWindow.document.commandDispatcher.focusedElement
  5. イベントをフォーカスされた要素にディスパッチするか、フォーカスのない要素がない場合はドキュメント化します。
関連する問題