Вы не можете.Просто зарегистрируйте нормальное событие ключа и вставьте ключи в массив.
Теперь вы можете вызывать функцию, которая проверяет команды:
// More or less pseudo code
function deleteLine(){};
function copyLine(){};
var commands = {'dd': deleteLine, 'yy': copyLine};
function onKeyPress(e) {
keyList.push(e.key);
// in this example keyList = ['d', 'y', 'i', 'd', 'd']
var result = handleEvent();
}
function handleEvent(keyList) {
// more pseudo code follows
var cmds = commands.keyValue.sortByLengthDescending();
for(var c in cmds) {
// match the keys
var ckey = c.split('');
for(var i = keyList.length; i >= 0; i--) {
if (keyList[i] !== ckey.shift()) {
break;
}
if (ckey.length === 0) {
return commands[c]();
}
}
}
}
Это просто, чисто (зависит от того, как именно вы это напишите) и масштабируемое, добавление большего количества команд довольно легкоКонечно, вы можете изменить его, чтобы передать параметры в командную функцию и т. д.