Como evito que as páginas que eu visito substituam as teclas de atalho selecionadas do Firefox?

36

No Firefox, como posso evitar que as páginas substituam os atalhos de teclado internos do Firefox pelo Javascript em uma base por chave? De preferência, por site, também? A substituição mais frustrante é a barra ('/') que está vinculada a "Localizar na página". Sites como os resultados de pesquisa do Google, linhas do tempo do Twitter, alguns wikis e outras páginas roubam a tecla barra para suas próprias caixas de pesquisa, o que é completamente errado.

Como meu representante me permite perguntar, editar e responder perguntas, mas não adicionar comentários, isso é basicamente uma duplicação dessas outras duas perguntas que não foram respondidas corretamente:

Como você faz uma parada? site para substituir meus atalhos de teclado

Firefox: não permita que sites substituam o / tecla (barra)

    
por Secure Shel 11.03.2012 / 02:40

5 respostas

9

Com base na resposta de edymtt, eu criei um userscript que desactiva atalhos de teclado única específicos. Você pode adicionar mais atalhos para desativar adicionando keycodes para a matriz keycodes, ou restringir os locais para aplicá-lo por substituindo a tag @include por um ou mais padrões.

Instale usando greasemonkey .

// ==UserScript==
// @name           Disable keyboard shortcuts
// @description    Stop websites from highjacking 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;
});
    
por 15.05.2013 / 16:14
8

Com relação ao Google e ao atalho Quick Find, você pode instalar este script Greasemonkey:

link

Como a descrição diz, "impede o Google de focar a entrada de pesquisa em cada tecla pressionada" - em particular, se você pressionar / com o foco do teclado fora da caixa de pesquisa, a Pesquisa Rápida será exibida, em outros sites.

Eu o instalei sem tocar no código, mas acho que ele pode ser facilmente adaptado para trabalhar com outros sites e / ou outros atalhos.

    
por 04.05.2012 / 21:10
5

Desde o Firefox 58, é possível desativar a substituição de atalhos de teclado por site.

"Substituir atalhos de teclado" e muitas outras permissões estão disponíveis em "Informações da página - Permissões >" (sob o ícone de informações na barra de URL).

A substituição do teclado foi introduzida no Firefox # 380637

    
por 19.03.2018 / 18:59
0

Aqui está um script mais geral - você pode definir qualquer número de eventos de pressionamento de tecla para desativar.

link

// ==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;
});
    
por 05.08.2015 / 22:22
-2

SimScript add-on foi a solução livre de problemas para mim. Ele impede que sites executem JavaScript, mas apenas os sites que você escolher. Na maioria das vezes, esses sites interceptam atalhos de teclado por JavaScript. Eu encontrei sobre isso em este artigo forma Ghacks.net.

    
por 11.07.2016 / 14:25