Como capturar a Cmdchave de um Mac via JavaScript?
javascript
dom-events
DataGreed
fonte
fonte
Respostas:
EDIT: a partir de 2019,
e.metaKey
é suportado em todos os principais navegadores conforme o MDN .Observe que no Windows, embora a ⊞ Windowschave seja considerada a chave "meta", ela não será capturada pelos navegadores como tal.
Isso é apenas para a chave de comando no MacOS / teclados.
Diferentemente de Shift/ Alt/ Ctrl, a Cmdtecla (“Apple”) não é considerada uma tecla modificadora - em vez disso, você deve ouvir
keydown
/keyup
e gravar quando uma tecla é pressionada e depois pressionada com base emevent.keyCode
.Infelizmente, esses códigos-chave dependem do navegador:
224
17
91
(Comando à Esquerda) ou93
(Comando à Direita)Você pode estar interessado em ler o artigo JavaScript Madness: Keyboard Events , a partir do qual aprendi esse conhecimento.
fonte
keydown
eventos, nãokeyup
.Você também pode olhar para o
event.metaKey
atributo no evento se estiver trabalhando com eventos de pressionamento de tecla. Trabalhou maravilhosamente para mim! Você pode tentar aqui .fonte
.metaKey
de fato funciona nos mais recentes Firefox, Safari e Opera. No Chrome,.metaKey
dispara no controle (não no comando).keydown
mas NÃO parakeyup
oukeypress
.Descobri que você pode detectar a chave de comando na versão mais recente do Safari (7.0: 9537.71) se for pressionada em conjunto com outra tecla. Por exemplo, se você quiser detectar ⌘ + x:, poderá detectar a tecla x AND verificar se event.metaKey está definido como true. Por exemplo:
Ao pressionar x por si só, isso será exibido
120, false
. Ao pressionar ⌘ + x, ele exibirá120, true
Isso parece funcionar apenas no Safari - não no Chrome
fonte
Baseando-me nos dados de Ilya, escrevi uma biblioteca Vanilla JS para suportar chaves modificadoras no Mac: https://github.com/MichaelZelensky/jsLibraries/blob/master/macKeys.js
Apenas use-o assim, por exemplo:
Testado no Chrome, Safari, Firefox, Opera no Mac. Por favor, verifique se funciona para você.
fonte
Para pessoas que usam jQuery, existe um excelente plugin para lidar com eventos importantes:
Teclas de atalho jQuery no GitHub
Para capturar ⌘+ Se Ctrl+ Seu estou usando isso:
fonte
Aqui está como eu fiz isso no AngularJS
fonte
se você usa o Vuejs, basta fazê-lo com o plugin vue-shortkey, tudo será simples
https://www.npmjs.com/package/vue-shortkey
fonte