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でキーボードのオーバーライドが導入されました #380637
11 Alec Istomin 2018-03-19
Googleとクイック検索のショートカットに関しては、このGreasemonkeyスクリプトをインストールすることができます
説明にあるように、これは「googleがキーを押すたびに検索入力にフォーカスを当てるのを止める」というものです
私はコードを触らずにインストールしただけですが、他のサイトおよび/または他のショートカットで動作するように簡単に適応させることができると思います
8 edymtt 2012-05-04
以下はより一般的なスクリプトです – 無効にするキープレスイベントを任意の数だけ定義することができます
// ==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