Javascript для захвата ярлыков и запуска некоторых действий - PullRequest
0 голосов
/ 11 марта 2011

Мне нужно захватить 'Alt-e' или 'Command-e' (например), чтобы открыть документ с тем же именем, кроме расширения с Javascript.

Для этого мне нужно выполнить эти три шага.

  1. Поймать 'alt-e' или 'Command-e'
  2. получить документимя
  3. заменить имя

Какие функции / методы я могу использовать для их реализации?

document.onkeypress=function(e){
    String.fromCharCode(e.charCode) == 'e' and Alt is pressed ??
    get document name ??
    newwindow = replace the html to txt ??
    window.open(newwindow,"myWindow");
}

ДОБАВЛЕНО

Я не мог заставить команду Apple работать, но я мог открыть TextMate с помощью Control-E.

var isCtrl = false;
document.onkeyup=function(e){
    if(e.which == 17) isCtrl=false;
}
document.onkeydown=function(e){
    if(e.which == 17) isCtrl=true;
    if(e.which == 69 && isCtrl == true) {
        window.location = "txmt://open/?url=file://%s","myWindow";
        return false;
    }
} 

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

См. Этот пример о том, как использовать коды клавиш, чтобы определить, нажаты ли комбинации (Alt, Cntr, Shift + что-то).Внизу также есть список всех кодов клавиш.

Как создавать сочетания клавиш Ctrl + в Javascript

Также есть нативные event.ctrlKey, event.shiftKey, event.altKey свойство, которое вы можете использовать.

Тем не менее, рассмотрите возможность использования SHIFT в качестве модификатора, чтобы он не конфликтовал ни с чем другим.CNTR и ALT обычно являются общими комбинациями, используемыми меню и прокруткой (например, CNTR + прокрутка мыши === увеличение).

1 голос
/ 11 марта 2011

событие имеет атрибут altKey, если клавиша alt нажимает true, просто добавьте

if(e.altkey && String.fromCharCode(e.charCode) == 'e'){
 DoSomething()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...