多くのウェブサイト、特にリッチテキスト編集に関わるものは全て(このサイトも罪深い)、Firefox を制御するために普通に使われるキーボードショートカットを盗み、代わりに何か別のことをさせています。Cmd-number, Cmd-L, Cmd-T, Cmd-K のようなものを押しても、私が望むようなことをしてくれないのは完全に腹立たしいです。どうにかして止めさせることはできませんか?
実際には、Cmd-*ショートカットを盗むことを禁止することができれば、それはおそらく最善の方法でしょう。何かの役に立つことに使われているのを見たことがありません。可能なのでしょうか?
64 taw 2010-07-27
Greasemonkeyの新しい@run-at
プロパティのおかげで、これが可能になりました!
このスクリプト と このスクリプト からインスピレーションを得て、キーボードショートカット Ctrl+T と Ctrl+S を正常に傍受するユーザースクリプトを作成しました。私はFirefox 17 ESRとFirefox 25でテストしました
// ==UserScript==
// @name Disable Ctrl+s and Ctrl+t interceptions
// @description Stop websites from highjacking keyboard shortcuts
//
// @run-at document-start
// @include *
// @grant none
// ==/UserScript==
// Keycode for 's' and 't'. Add more to disable other ctrl+X interceptions
keycodes = [83, 84];
(window.opera ? document.body : document).addEventListener('keydown', function(e) {
// alert(e.keyCode ); //uncomment to find more keyCodes
if (keycodes.indexOf(e.keyCode) != -1 && e.ctrlKey) {
e.cancelBubble = true;
e.stopImmediatePropagation();
// alert("Gotcha!"); //ucomment to check if it's seeing the combo
}
return false;
}, !window.opera);
26 Martin J.H. 2013-11-05
バグが提出されてから11年、Mozillaはようやくこの人気のある機能要求に取り組むことができ、今は問題なく動作しているようです(Firefox 66.0.3/Ubuntuでテスト済み)
(FF59以降、設定がかなり難しくなっていることを指摘してくれた@PerJohanssonさんに感謝)
私はちょうどFirefox 75でテストし、いくつかの簡単な手順でこの答えを更新しました
以下に各ステップのスクリーンショットを掲載しています
- Ctrl-I (可能であれば) を押してページ情報ウィンドウを表示します
Permissions
タブを選択しますOverride Keyboard Shortcuts
の設定を調整します
最近(2020年4月)の各ステップのスクリーンショットをご紹介します
- マウスを使ってページ情報ウィンドウを開くと
Permissions
タブを選択します
- パーミッションを適切に調整してください
Mozilla の Page Info
ウィンドウについての詳しい情報はこちらにあります
そして、この修正の歴史に興味がある方は、関連するMozillaのチケットをご紹介します。https://bugzilla.mozilla.org/show_bug.cgi?id=380637 と https://bugzilla.mozilla.org/show_bug.cgi?id=1445942 です
15 Lambart 2018-04-26
広範な調査によると、Firefox の現在のバージョン (3.6.x) ではこれは不可能です – すべてのキーバインドの競合は優先順位で解決されます。システム > ウェブサイト > Firefox – これはかなり馬鹿げた順序です。私が試したアドオンはどれもこれを解決することができないようです
将来のバージョンでは可能になるかもしれませんが、今のところ答えは「不可能」です
5 taw 2010-08-05
問題はキープレスを盗むJavaScriptのキーボードイベントのようですので、これらのすべてのキーボードイベントをアンバインドして、ブラウザに各ショートカットの適切な使用法を返すJavaScriptスクリプト(Greasemonkeyを介して使用される)を構築することは可能ではないでしょうか?
私はこれがどのように実現可能であるかわからないが、より多くのJavaScript / Greasemonkeyの経験を持つ誰かが助けることができるかもしれない(SO上で尋ねる価値があるかもしれない)
5 DMA57361 2010-08-05
問題は、どのページでもキープレスイベントをつかむためのイベントハンドラを設定するJavascriptを実行することができ、Firefoxのjavascriptのコントロールは、他のjavascriptの機能を壊すことなくそれを止めるのに十分に細かく設定されていないということです
これを防ぐ唯一の方法は、Javascriptを無効にすることです(ツール -> オプション、[コンテンツ]タブ、[JavaScriptを有効にする]のチェックを外す)。または、NoScriptのような拡張機能を使用してサイトごとにJavascriptを無効にすることができます
Firefox では、ウィンドウの移動/サイズ変更、コンテキストメニューの変更や無効化などの Javascript の特定の使用を防ぐことができますが、Web サイトがキーボードイベントを傍受することを防ぐものは何もありません
多分、このレベルのコントロールを提供する拡張機能があるのでしょう – 私は知らない。 Javascript Options がありますが、その拡張機能はもう更新されていません
4 njd 2010-07-30
様々なブラウザでテストを重ねた結果、この「アプリ一体型キー」の中には「キーを押す」イベントでは迎撃しにくいものがあるため、キーがダウンしている(押されていない)時に迎撃しやすくなっています
ブラウザ間の互換性のあるスクリプトを思いつきました(マイクロソフトのIEではテストしていません)。いくつかのキーに対してブラウザが異なるコードを返すことに注意してください。私の場合は Ctrl+P を防ぎたかったのです
クロームではキー「P」はe.keyCode == 80
、オペラではe.charCode == 16
、ファイアフォックスではe.charCode == 112
と表示されます
$(document).on('keydown', function(e) {
if(e.ctrlKey && (e.key == "p" || e.charCode == 16 || e.charCode == 112 || e.keyCode == 80) ){
alert("Please use the Print PDF button below for a better rendering on the document");
e.cancelBubble = true;
e.preventDefault();
e.stopImmediatePropagation();
}
});
jQueryを使ってみました
1 Peter 2015-06-08
サードパーティのプラグインがメインブラウザのウィンドウからフォーカスを奪っている可能性があります。その場合、キーボード入力(割り込みを除く)はプラグインに妨害されてしまいます。これが気に入らない場合は、常に問題のあるプラグインを削除することができます
0 Daisetsu 2010-07-27
おそらく、あなたはAutohotkeyやAutoit、それらのプログラムのいずれかを使用することができますし、あなたがホットキーのコンボを行うことができ、それらをFirefoxの機能にリンクすることができれば、言う
Ctrl-; T
新規タブへ
Ctrl-; N
を新しいウィンドウに移動するなど
私はAutohotkeyやAutoitを使用する方法を知らないので、他の誰かがこれが動作する可能性があることを確認する必要があります、私は唯一の可能性のあるアイデアとしてこれを提供しています
0 Nathaniel Saxe 2010-08-05
もし、ウェブページに引き継がれるctrlキーを無効にしたい場合は、a-zからのすべての文字のコードをフィルタリングしてください(以前に受け入れられていた回答に基づいています)
// ==UserScript==
// @name Disable Ctrl+key interceptions
// @description Stop websites from highjacking keyboard shortcuts
//
// @run-at document-start
// @include *
// @grant none
// ==/UserScript==
(window.opera ? document.body : document).addEventListener('keydown', function(e) {
//alert(e.keyCode ); //uncomment to find more keyCodes
if( e.ctrlKey && e.keyCode>=65 && e.keyCode<=90 ) {
e.cancelBubble = true;
e.stopImmediatePropagation();
}
return false;
}, !window.opera);
0 Steve Horvath 2017-12-17
Firefoxの現在のバージョンでは、私たちは “コンテキストメニューをハイジャックするjavascriptを無効にする “ことができます
ツール/オプション/コンテンツ/Javascriptの高度な機能/コンテキストメニューを無効にしたり、置換したりします
しかし、「キーボードショートカットを乗っ取るjavascriptを無効にする」機能はありません
ps.私はTwitterのウェブサイト、そのキーボードショートカットが私のシステムベースのキーボードショートカットと競合するのが嫌いです。J、K、L、I
bugzilla.mozilla.orgに機能リクエストをしましたので、コメントをお願いします。https://bugzilla.mozilla.org/show_bug.cgi?id=775002
-1 diyism 2012-07-18