Wie erfasst man den CmdSchlüssel eines Mac über JavaScript?
javascript
dom-events
DataGreed
quelle
quelle
Antworten:
BEARBEITEN: Ab 2019
e.metaKey
wird in allen gängigen Browsern gemäß MDN unterstützt .Beachten Sie, dass unter Windows der ⊞ WindowsSchlüssel zwar als "Meta" -Schlüssel betrachtet wird, jedoch nicht von Browsern als solchen erfasst wird.
Dies gilt nur für die Befehlstaste unter MacOS / Tastaturen.
Im Gegensatz zu Shift/ Alt/ Ctrlwird die CmdTaste („Apple“) nicht als Modifizierertaste betrachtet. Stattdessen sollten Sie auf
keydown
/ hörenkeyup
und aufzeichnen, wenn eine Taste gedrückt und dann basierend auf gedrückt wirdevent.keyCode
.Leider sind diese Schlüsselcodes browserabhängig:
224
17
91
(linker Befehl) oder93
(rechter Befehl)Vielleicht möchten Sie den Artikel JavaScript Madness: Keyboard Events lesen , aus dem ich dieses Wissen gelernt habe.
quelle
keydown
Ereignissen funktioniert , nicht bei Ereignissenkeyup
.Sie können sich auch das
event.metaKey
Attribut des Ereignisses ansehen, wenn Sie mit Keydown-Ereignissen arbeiten. Arbeitete wunderbar für mich! Sie können es hier versuchen .quelle
.metaKey
funktioniert in der Tat in den neuesten Versionen von Firefox, Safari und Opera. Wird in Chrome.metaKey
bei Steuerung ausgelöst (nicht bei Befehl).keydown
aber NICHT fürkeyup
oderkeypress
.Ich habe festgestellt, dass Sie die Befehlstaste in der neuesten Version von Safari (7.0: 9537.71) erkennen können, wenn sie in Verbindung mit einer anderen Taste gedrückt wird. Wenn Sie beispielsweise ⌘ + x: erkennen möchten, können Sie die x-Taste erkennen UND prüfen, ob event.metaKey auf true gesetzt ist. Beispielsweise:
Wenn Sie x alleine drücken, wird dies ausgegeben
120, false
. Wenn Sie ⌘ + x drücken, wird ausgegeben120, true
Dies scheint nur in Safari zu funktionieren - nicht in Chrome
quelle
Basierend auf Ilyas Daten habe ich eine Vanilla JS-Bibliothek zur Unterstützung von Modifikatortasten auf dem Mac geschrieben: https://github.com/MichaelZelensky/jsLibraries/blob/master/macKeys.js
Verwenden Sie es einfach so, zB:
Getestet auf Chrome, Safari, Firefox, Opera auf Mac. Bitte überprüfen Sie, ob es für Sie funktioniert.
quelle
Für Benutzer von jQuery gibt es ein hervorragendes Plugin für die Behandlung von Schlüsselereignissen:
jQuery-Hotkeys auf GitHub
Zum Erfassen von ⌘+ Sund Ctrl+ verwende Sich Folgendes:
quelle
Hier ist, wie ich es in AngularJS gemacht habe
quelle
Wenn Sie Vuejs verwenden, machen Sie es einfach mit dem Vue-Shortkey-Plugin, alles wird einfach
https://www.npmjs.com/package/vue-shortkey
quelle