Что бы я сделал, это прикрепил события onKeyUp к document.body. Затем в этом обработчике событий я бы использовал метод Element.fire для запуска пользовательского события. Хотя этот шаг не является обязательным, он поможет отделить обработчик событий от выполняемого действия, и вы можете использовать тот же обработчик пользовательских событий, например, при нажатии кнопки.
$(document.body).observe("keyup", function() {
if(/* key + modifier match */) {
$(document.body).fire("myapp:mycoolevent");
}
});
$(document.body).observe("myapp:mycoolevent", function() {
// Handle event.
});
Позже, чтобы привязать то же событие к нажатию кнопки:
$(button).observe("click", function() {
$(document.body).fire("myapp:mycoolevent");
});
Что касается обработки клавиш-модификаторов, обратитесь к этому ресурсу (очень старый, но все еще выглядит применимым) для получения дополнительной помощи.