Meus usuários gostariam de pressionar Ctrl+ Spara salvar um formulário. Existe uma boa maneira entre navegadores de capturar a combinação de teclas Ctrl+ Se enviar meu formulário?
O aplicativo é construído no Drupal, então o jQuery está disponível.
javascript
jquery
ceejayoz
fonte
fonte
keydown
, em vez dekeypress
em cromoIsso funciona para mim (usando jquery) para sobrecarregar Ctrl+ S, Ctrl+ Fe Ctrl+ G:
fonte
window.addEventListener(
em vez de$(window).bind(
else if
não funcionará porque aif
declaração original já será avaliada como verdadeira. Você terá que colocar seu código antes daif
declaração original , transformando o original em umelse if
.Você pode usar uma biblioteca de atalhos para lidar com as coisas específicas do navegador.
fonte
Esta solução jQuery funciona para mim no Chrome e Firefox, tanto para Ctrl+ Scomo para Cmd+ S.
fonte
e.key
vez dee.which
;Este funcionou para mim no Chrome ... por algum motivo,
event.which
retorna um S maiúsculo (83) para mim, não sei por que (independentemente do estado do caps lock), então eu useifromCharCode
etoLowerCase
apenas para estar do lado seguroSe alguém souber por que eu recebo 83 e não 115 , ficarei feliz em ouvir, também se alguém testar isso em outros navegadores, ficarei feliz em saber se funciona ou não
fonte
Combinei algumas opções para oferecer suporte ao FireFox, IE e Chrome. Também atualizei-o para melhor suporte ao mac
fonte
Gostaria que os aplicativos da Web não substituíssem minhas teclas de atalho padrão, honestamente. Ctrl+ Sjá faz algo nos navegadores. Ter essa alteração abruptamente, dependendo do site que estou visualizando, é perturbador e frustrante, sem mencionar muitas vezes erros. Eu tive sites seqüestrados Ctrl+ Tabporque parecia o mesmo que Ctrl+ I, arruinando meu trabalho no site e me impedindo de alternar entre as guias como de costume.
Se você deseja teclas de atalho, use o
accesskey
atributo Por favor, não quebre a funcionalidade existente do navegador.fonte
@ Eevee: À medida que o navegador se torna o lar de funcionalidades cada vez mais ricas e começa a substituir os aplicativos de desktop, não será apenas uma opção para renunciar ao uso de atalhos de teclado. O conjunto rico e intuitivo de comandos do teclado do Gmail foi fundamental na minha disposição de abandonar o Outlook. Os atalhos de teclado do Todoist, Google Reader e Google Calendar tornam minha vida muito, muito mais fácil diariamente.
Definitivamente, os desenvolvedores devem tomar cuidado para não substituir as teclas digitadas que já possuem um significado no navegador. Por exemplo, a caixa de texto WMD que estou digitando inexplicavelmente interpreta Ctrl+ Delcomo "Blockquote" em vez de "excluir a palavra adiante". Estou curioso para saber se há uma lista padrão em algum lugar de atalhos "seguros para o navegador" que os desenvolvedores de sites podem usar e que os navegadores se comprometam a ficar longe de versões futuras.
fonte
Esta é uma versão atualizada da resposta de @ AlanBellows, substituindo
which
porkey
. Ele também funciona mesmo com a falha da tecla de capital do Chrome (onde, se você pressionar Ctrl+, Sele envia capital S em vez de s). Funciona em todos os navegadores modernos.fonte
Esta foi a minha solução, que é muito mais fácil de ler do que outras sugestões aqui, pode incluir facilmente outras combinações de teclas e foi testada no IE, Chrome e Firefox:
fonte
String.fromCharCode
. Embora os Macs não tenham uma chave de controle. Teste a chave de comando comevt.metaKey
. Ele retornatrue
para Cmd no Mac e Win no Windows.Eu gosto deste pequeno plugin . No entanto, ele precisa de um pouco mais de compatibilidade entre navegadores.
fonte
Isso deve funcionar (adaptado de https://stackoverflow.com/a/8285722/388902 ).
fonte
exemplo:
uso
link para download: http://www.openjs.com/scripts/events/keyboard_shortcuts/#
fonte
Para Alan Bellows, responda:! (E.altKey) adicionado para usuários que usam AltGrao digitar (por exemplo, Polônia). Sem isso, pressionar AltGr+ Sdará o mesmo resultado que Ctrl+S
fonte
Este plugin criado por mim pode ser útil.
Plugar
Você pode usar este plugin. Você precisa fornecer os códigos-chave e a função a ser executada dessa maneira
No código, eu mostrei como executar o Ctrl+ S. Você receberá a documentação detalhada no link. O plug-in está na seção Código JavaScript da minha caneta no Codepen.
fonte
Resolvi meu problema no IE , usando um
alert("With a message")
para impedir o comportamento padrão:fonte