閲覧したページが選択したFirefoxのショートカットキーを上書きされないようにするにはどうすればいいですか?

firefox firefox-extensions hotkeys javascript keyboard-shortcuts

Firefoxでは、どのようにすれば、Firefoxに組み込まれたキーボードショートカットをキーごとにJavascriptで上書きしないようにすることができますか?できればサイトごとにも?最もイライラするオーバーライドは、「ページ内を検索」にリンクされている前方のスラッシュ (‘/’) です。Google の検索結果、Twitter のタイムライン、いくつかの Wiki、および他のページのようなサイトは、独自の検索ボックスのためにスラッシュキーを盗用しますが、これは完全に間違っています

私の担当者は質問、編集、回答をさせてくれますが、コメントを追加することはできませんので、基本的には適切に回答されていない他の2つの質問と重複しています

どのように私のキーボードのショートカットを上書きするためのウェブサイトを停止するには

Firefox: / (スラッシュ)キーを上書きするウェブサイトを許可しない

  46  Secure Shel  2012-03-11


ベストアンサー

edymttさんの回答を元に、特定のキーボードショートカットだけを無効にするユーザスクリプトを作成しました。keycodes を keycodes 配列に追加することで、無効化するショートカットを増やしたり、@include タグを 1 つ以上のパターンに置き換えることで、適用するサイトを制限したりすることができます

greasemonkey を使ってインストールしてください

// ==UserScript==
// @name           Disable keyboard shortcuts
// @description    Stop websites from hijacking keyboard shortcuts
//
// @run-at         document-start
// @include        *
// @grant          none
// ==/UserScript==

keycodes = [191] // Keycode for '/', add more keycodes to disable other key captures

document.addEventListener('keydown', function(e) {
//    alert(e.keyCode); //uncomment to find out the keycode for any given key
if (keycodes.indexOf(e.keyCode) != -1)
{
e.cancelBubble = true;
e.stopImmediatePropagation();
}
return false;
});

12  MikeFHay  2013-05-15


Firefox 58以降、Webサイトごとにキーボードショートカットの上書きを無効にすることが可能になりました

“Override Keyboard Shortcuts” やその他の多くの権限は、”Page Info -> Permissions” (URLバーの情報アイコンの下) で利用できます

Firefox Permissions example for superuser.com

Firefoxでキーボードのオーバーライドが導入されました #380637

11  Alec Istomin  2018-03-19


Googleとクイック検索のショートカットに関しては、このGreasemonkeyスクリプトをインストールすることができます

Google stop focus for Greasemonkey
Stop google from focusing the search input on every key press

説明にあるように、これは「googleがキーを押すたびに検索入力にフォーカスを当てるのを止める」というものです

私はコードを触らずにインストールしただけですが、他のサイトおよび/または他のショートカットで動作するように簡単に適応させることができると思います

8  edymtt  2012-05-04


以下はより一般的なスクリプトです – 無効にするキープレスイベントを任意の数だけ定義することができます

Disable website keyboard hooks
Stop websites from hijacking keyboard shortcuts.
// ==UserScript==
// @name           Disable website keyboard hooks
// @description    Stop websites from hijacking keyboard shortcuts.
// @author         Isaac Levy
// @run-at         document-start
// @include        *
// @grant          none
// @version        0.0.1
// @namespace      https://isaacrlevy.com
// ==/UserScript==

var keycodes = [ // Add keycodes as desired, keep sorted.
37, 38, 39, 40 // Arrow keys.
]

var meta_keycodes = [ // Disable these when meta key is pressed.
70
];

// Don't change below this line.

var isMac = navigator.platform.toLowerCase().indexOf('mac') >= 0;

// Create a fast lookup.
// This saves work during normal typing. Maybe unnecessary.
var keycode_offset = keycodes[0];
var keycode_arr = Array(keycodes[keycodes.length - 1] - keycode_offset)
for (var i = 0, len = keycodes.length; i < len; i++) {
keycode_arr[keycodes[i] - keycode_offset] = true;
}

document.addEventListener('keydown', function(e) {
//console.log(e);
if ((isMac && e.metaKey) || (!isMac && e.ctrlKey)) {
if (meta_keycodes.indexOf(e.keyCode) >= 0) {
e.stopImmediatePropagation();
}
} else if (keycode_arr[e.keyCode - keycode_offset]) {
e.stopImmediatePropagation();
}
return false;
});

0  vackamole  2015-08-05


タイトルとURLをコピーしました