Самый простой способ - установить значение атрибута accesskey
для ваших элементов. Если вы хотите сделать это через Rails, вы можете сделать это, передав дополнительную опцию вспомогательному методу submit_tag
, например:
<%= submit_tag("Save and Refresh", :accesskey => "R") %>
// Equivalent to <input type="submit" value="Save and Refresh" accesskey="R" />
Что приведет к тому, что эта кнопка будет нажата, когда Alt + R (или Alt + Shift + R , в зависимости от вашего браузера). Атрибут accesskey
доступен для элементов HTML <input>
, <button>
и <a>
.
Если вы хотите сделать что-то более сложное (например, сочетания клавиш GMail), вам придется написать немного javascript. Ядром его будет обработчик событий, который отслеживает нажатия клавиш в документе, а затем вызывает другие функции javascript для запуска нужного кода при нажатии определенной клавиши. Вот очень упрощенный способ настройки сочетаний клавиш на основе нажатия клавиши (здесь используется Prototype, то есть библиотека Javascript, которую Rails использует по умолчанию и которая не тестировалась):
$(document.body).observe("keypress", function(event)
{
var keyCode = event.which || event.keyCode; // W3C and Microsoft's event models
// have differing ways of
// determining which key was pressed
var keyChar = String.fromCharCode(keyCode); // turn a code into an actual character
switch (keyChar)
{
case 'a':
// Run code if the user presses 'a'
break;
// ...
}
});
Вот еще один SO вопрос , касающийся сочетаний клавиш в Javascript.
Обратите внимание, что ни одно из этих решений на самом деле не полагается на Rails.