Firefox用の「古い」XULベースのアドオンである、Firemacsのややハッキングされたバージョンを使用します。 keypress
イベントを監視するには、プラグインが<overlay>
を作成し、使用するスクリプト出典:Firefox XULアドオンがウェブサイトがキー押しイベントを盗むのを防ぐ方法を教えてください。
window.addEventListener('keypress', handler, true);
をしかし、ウェブサイトは、イベントを「盗む」ことがあります。たとえば、SOの質問テキストボックスでは、C-bを入力できません。これは、一部の書式設定に短絡されているためです。同様に、Facebookはキーバインディングのを盗みます。特に、クリップボードからペーストするために使用します。
質問:アドオンを変更して、常にキー押しイベントを最初に捕まえることができますか?
エクストラ:これはどうでしたか?<overlay>
は無効になりましたか?
ああ、おもしろい!さて、私は 'keypress'の慰めが好きで、' event.which'は明確に押されたキーを綴る。しかし、単に 'keydown'リスナーを' stopPropagation'に追加すれば、ブラウザには何も入力できません。したがって、 'keydown'のすべてをコード化し、' keyCode'sを文字に変換する唯一の選択肢はありますか?どうもありがとう! –
@Michaëlあなたは 'keypress'がトリガするのを防ぐために' keyup'をブロックすることもできます。 – Noitidart
私はこれを理解しているのか分かりません。私が 'keypress'を使うと、Facebookはアドオンにイベントを渡しません(私は* how *、彼らが' keydown'や 'keypress'を実装しているかどうかわからない')。したがって、私は 'keydown 'と何か*する必要があります。 'stopPropagation'と' preventDefault' *で常に 'keydown'イベントを止めてしまうと、無駄なブラウザが残ってしまいます。それで、私は、キー変換からキー変換への間違ったキーコードを手にして、 'keydown'にアドオンを実装しなければならないように思えます。あなたはそれに代わる方法があると言っていますか?どうもありがとう! –