Как получить Cmdключ Mac с помощью JavaScript?
javascript
dom-events
DataGreed
источник
источник
Ответы:
EDIT: По состоянию на 2019 год ,
e.metaKey
будет поддерживаться на всех основных браузерах , как в соответствии с MDN .Обратите внимание, что в Windows, хотя ⊞ Windowsключ считается мета-ключом, он не собирается перехватываться браузерами как таковой.
Это только для клавиш управления на MacOS / клавиатурах.
В отличие от Shift/ Alt/ Ctrl, Cmdклавиша («Apple») не считается клавишей-модификатором - вместо этого вы должны слушать
keydown
/keyup
и записывать, когда клавиша нажата, а затем нажата на основеevent.keyCode
.К сожалению, эти коды клавиш зависят от браузера:
224
17
91
(левая команда) или93
(правая команда)Возможно, вам будет интересно прочитать статью « Безумие JavaScript: события клавиатуры» , из которой я узнал об этом.
источник
keydown
события, а неkeyup
.Вы также можете посмотреть на
event.metaKey
атрибут события, если вы работаете с событиями нажатия клавиш. Работал чудесно для меня! Вы можете попробовать это здесь .источник
.metaKey
действительно работает в последних Firefox, Safari и Opera. В Chrome.metaKey
срабатывает при управлении (не по команде).keydown
но НЕ дляkeyup
илиkeypress
.Я обнаружил, что вы можете обнаружить командную клавишу в последней версии Safari (7.0: 9537.71), если она нажата в сочетании с другой клавишей. Например, если вы хотите обнаружить ⌘ + x:, вы можете обнаружить клавишу x И проверить, установлен ли для event.metaKey значение true. Например:
При самостоятельном нажатии x это будет выводить
120, false
. При нажатии ⌘ + x, он выведет120, true
Кажется, это работает только в Safari, а не в Chrome
источник
Основываясь на данных Ильи, я написал библиотеку Vanilla JS для поддержки клавиш-модификаторов на Mac: https://github.com/MichaelZelensky/jsLibraries/blob/master/macKeys.js
Просто используйте это так, например:
Протестировано на Chrome, Safari, Firefox, Opera на Mac. Пожалуйста, проверьте, работает ли он для вас.
источник
Для людей, использующих jQuery, есть отличный плагин для обработки ключевых событий:
Горячие клавиши jQuery на GitHub
Для захвата ⌘+ Sи Ctrl+ Sя использую это:
источник
Вот как я это сделал в AngularJS
источник
если вы используете Vuejs, просто сделайте это с помощью плагина vue-shortkey, все будет просто
https://www.npmjs.com/package/vue-shortkey
источник