Mozillaエクステンションをビルドしていて、sendKeyEvent
関数を使用してウィンドウのキーストロークを送信する必要があります。私はウィンドウに1回のキーストロークを送信すると動作しますが、マルチキーストロークパターン(つまり、Shift + 3で#文字を送信)を送信しようとすると機能しません。誰もがウィンドウに複数のキーを送信する方法を考えていますか?私は、次のコードを試してみましたが、それは動作していないようです:Mozilla/FirefoxエクステンションでsendKeyEventを使用してコンビネーションキーストロークを送信する
var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils);
utils.sendKeyEvent("keydown", 51, 51, 4);
utils.sendKeyEvent("keypress", 51, 51, 4);
utils.sendKeyEvent("keyup", 51, 51, 4);
私はウェブを研究したが、私は、マルチキーの組み合わせのいずれかの例を見つけることができません。
UP:私がこの質問をした理由は、私がカスタムFF拡張モジュールをビルドしてウェブサイトとやり取りするためです。ウェブサイトにはいくつかのショートカットキーがあり、拡張機能ではショートカットキーイベントをいくつかトリガーしたいと考えています。このようなショートカットの1つは、SHIFT + 3(シャープ記号)です。だから私は、彼らが次のようなものを持っていると信じてサイト上:
function key_event(evt)
{
if(evt.keyCode == 16) {
if(evt.keyCode == 51){
FIRE EVENT
}
}
}
今、誰もがsendKeyEventがそれをトリガーしていないようですので、私はJavaScriptでこのイベントをトリガーすることができる方法を知っていますか?私の最初の考えは、SHIFTキーを押して3キーを押す間隔を設定するwhileループを作成することです。ある時点では、同時に起動する必要がありますか?これが最善の方法であるかどうかはわかりません。どんな指導/アイデアも大歓迎です!
お時間をいただきありがとうございます。
、あなたはそのASCIIコードを送信しようとしたのですか?つまり、51の代わりに** 35 **を使用します。 –
こんにちはブロック、提案のおかげで、残念ながらそれは動作しませんでした。 1)サイトが聞いている、2)キーイベントをトリガするために何が起こる必要があるのか考えてみよう – thiesdiggity
ちょっと@Brock、あなたは男です!あなたのソリューションは実際に働いた、上記の私のコメントについては申し訳ありません。それを回答として追加したい場合、私はそれを解決済みとしてマークし、あなたにクレジットを与えます。再度、感謝します! – thiesdiggity