Muitos sites, especialmente tudo que envolve edição de rich text (este site também é culpado), roubam atalhos de teclado normalmente usados para controlar o Firefox e os fazem fazer outra coisa. É totalmente irritante quando pressiono algo como Cmd-number, Cmd-L, Cmd-T ou Cmd-K e ele não faz o que eu quero. Posso fazer parar?
Na verdade, provavelmente seria o melhor se eu pudesse proibir o roubo de todos os atalhos do Cmd- *. Eu nunca os vi usados para algo útil. É possível?
CTRL-;
entra no modo de atalho e destaca todos os comandos visíveis na tela com os atalhos disponíveis. Cada atalho é uma combinação, portanto, o novo caso éCTRL-; N
e a edição éCTRL-; E
. Muito fácil de se acostumar e zero conflitos. Eu gostaria que mais sites usassem algo assim, porque é mais fácil para o usuário e não substitui os atalhos do navegador. Pena que o SuperUser não faz isso, pois é da mesma pessoa que o FogBugz.Respostas:
Graças à nova
@run-at
propriedade de Greasemonkey , isso agora é possível!Eu me inspirei neste script e neste script para combiná-los em um Userscript que intercepta com êxito os atalhos de teclado Ctrl+ Te Ctrl+ S. Eu testei no Firefox 17 ESR e Firefox 25.
fonte
e.ctrlKey
dee.cmdKey
ee.cmdKey && e.shiftKey
para recuperar a maioria de seus atalhos do browser.9
à matriz de códigos de chave. Obrigado!11 anos após o bug ser arquivado, a Mozilla finalmente começou a trabalhar nessa popular solicitação de recurso, e parece estar funcionando bem agora (testado no Firefox 66.0.3 / Ubuntu).
(Obrigado a @PerJohansson por apontar que eles tornaram a configuração muito mais difícil de encontrar desde o FF 59.)
Você pode desativar os atalhos do site seguindo estas etapas:
(i)
ícone na barra de localização>
) à direita do item de status "Conexão".More Information
na parte inferior. Clique nele e você finalmente chegará àPage Info
caixa de diálogo.Permissions
guia e ajuste aOverride Keyboard Shortcuts
configuração.Aqui estão algumas capturas de tela recentes (maio de 2019) para cada etapa:
Se você estiver interessado no histórico dessa correção, veja os tickets relacionados ao Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=380637 e https://bugzilla.mozilla.org/show_bug.cgi ? id = 1445942
fonte
about:config
opção para alterar o padrão? Quero forçar todos os sites a não conseguirem conectar-se ao meu tecladoUma extensa pesquisa mostra que, na versão atual do Firefox (3.6.x), isso é impossível - todos os principais conflitos de ligação são resolvidos com prioridades: Sistema> Site> Firefox - uma ordem bastante estúpida. Nenhum dos addons que tentei parece ser capaz de corrigi-lo.
Possivelmente, isso pode se tornar factível em versões futuras, mas agora a resposta é - Impossível.
fonte
Como os problemas parecem ser eventos de teclado JavaScript roubando pressionamentos de tecla, não seria possível criar um script JavaScript (para ser usado via Greasemonkey) que desata todos esses eventos de teclado, retornando assim ao navegador o uso adequado de cada atalho?
Não tenho certeza de como isso é viável, mas alguém com mais experiência em JavaScript / Greasemonkey pode ajudar (pode valer a pena perguntar no SO).
fonte
O problema é que qualquer página pode executar Javascript que configura um manipulador de eventos para capturar eventos de pressionamento de tecla, e os controles javascript do Firefox não são suficientemente refinados para impedi-lo sem interromper outros recursos javascript.
A única maneira de evitar isso é desativar o Javascript (Ferramentas -> Opções, guia [Conteúdo], desmarque a opção Ativar JavaScript ). Ou você pode desativar o Javascript por site com uma extensão como NoScript.
O Firefox permite impedir certos usos do Javascript, como mover / redimensionar janelas, alterar ou desativar o menu de contexto, etc; mas não há nada para impedir que sites interceptem eventos do teclado.
Talvez haja uma extensão que dê esse nível de controle - não conheço uma.
Há opções de Javascript , mas essa extensão não está mais sendo atualizada.
fonte
É provável que plugins de terceiros estejam focando na janela principal do navegador. Nesse caso, a entrada do teclado (exceto interrupções) será interceptada pelo plug-in. Se você não gosta disso, sempre pode remover o (s) plug-in (s) ofensivo (eu suponho que é provavelmente flash).
fonte
Após muitos testes em vários navegadores, é mais fácil interceptar as teclas quando elas estão pressionadas (sem pressionar), porque algumas dessas "teclas integradas ao aplicativo" são difíceis de interceptar com o evento "keypress".
Eu vim com esse script que é compatível com vários navegadores (não testei o IE da Microsoft). Observe que os navegadores retornam códigos diferentes para algumas chaves. No meu caso, eu queria impedir Ctrl + P.
A tecla "P" no chrome é vista como
e.keyCode == 80
na óperae.charCode == 16
, enquanto no firefox ée.charCode == 112
Eu usei o jQuery.
fonte
Se você deseja desativar qualquer tecla ctrl que está sendo adquirida pela página da Web, basta filtrar todos os códigos das letras de az (com base na resposta aceita e funcional anteriormente)
fonte
Talvez você possa usar o Autohotkey ou o Autoit, um desses programas, e se você puder fazer combinações de teclas de atalho e vinculá-las às funções do Firefox, digamos
Ctrl-; T
para nova guiaCtrl-; N
para uma nova janela e assim por diante.Não sei como usar a Autohotkey ou a Autoit, para que outra pessoa precise verificar se isso pode funcionar, apenas ofereço isso como uma ideia em potencial.
fonte
A versão atual do Firefox nos permite "desativar o javascript para invadir o menu de contexto":
Mas não há recurso para "desativar o javascript para seqüestrar atalhos de teclado".
ps. Eu odeio o site do twitter, seus atalhos de teclado entram em conflito com os meus atalhos de teclado baseados no sistema: J, K, L, I
Fiz uma solicitação de recurso no bugzilla.mozilla.org, comente aqui: https://bugzilla.mozilla.org/show_bug.cgi?id=775002
fonte