Nano Hash - криптовалюты, майнинг, программирование

Обнаружить ключ команды в javascript MAC

Я прослушиваю события нажатия клавиш на панели Extjs для выполнения некоторых действий. Я копирую и вставляю объекты SVG, когда нажимаю ctrl+c, ctrl+v. Это работает в ОС Windows и во всех браузерах. Но у меня проблема с MAC. Я хочу обнаружить ⌘ +C/⌘+V в MAC. Короче говоря, я хочу обнаружить ключ ⌘ в MAC. Как это сделать ? Любая помощь?

getKeyboardAction :function(event){
    var isCtrlKeyPressed = event.ctrlKey;
    var isCopy = (isCtrlKeyPressed && event.keyCode == 67)?true:false;
    var isPaste = (isCtrlKeyPressed && event.keyCode == 86)?true:false;
    var isDuplicate = (isCtrlKeyPressed && event.keyCode == 68)?true:false;
    var isDelete = (event.keyCode ==46)?true:false;
    var isLeftArrow = (event.keyCode ==37)?true:false;
    var isUpArrow = (event.keyCode ==38)?true:false;
    var isRightArrow = (event.keyCode ==39)?true:false;
    var isDownArrow = (event.keyCode ==40)?true:false;
    var isEsc = (event.keyCode ==27)?true:false;
    var keyboardAction = null;

    if(isCopy)            return 'COPY';
    else if(isPaste)      return 'PASTE';
    else if(isDuplicate)  return 'DUPLICATE';
    else if(isDelete)     return 'DELETE';
    else if(isLeftArrow)  return 'MOVELEFT';
    else if(isUpArrow)    return 'MOVEUP';
    else if(isRightArrow) return 'MOVERIGHT';
    else if(isDownArrow)  return 'MOVEDOWN';
    else if(isEsc)        return 'ESCAPE';

    return null;
},

Спасибо


  • Мой волшебный кристалл не может открыть мне твой код... ;-) 20.02.2015

Ответы:


1

Чтобы надежно перехватить клавишу CMD в OSX, вам нужно, например, прослушивать события keydown и keyup вместо keypress (которое не срабатывает). Чтобы создавать и перехватывать ярлыки, я помещал любой keyCode в массив на keydown и удалял тот же код на keyup.

var pressedKeys = [ ];

$( document.body ).on('keydown', function( event ) {
    pressedKeys.push( event.which || event.keyCode );
});

$( document.body ).on('keyup', function( event ) {
    var pos;

    if( (pos = Private.pressedKeys.indexOf( event.which || event.keyCode )) > -1 ) {
        Private.pressedKeys.splice( pos, 1 );
    }
});
20.02.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..