Сочетания клавиш Ruby on Rails - PullRequest
6 голосов
/ 16 января 2010

Кто-нибудь знает, как настроить сочетания клавиш с помощью Ruby on Rails на моем сайте?Например, если пользователь хочет взаимодействовать с сайтом, используя сочетания клавиш вместо нажатия кнопок / ссылок, как мне это сделать?

Ответы [ 3 ]

8 голосов
/ 16 января 2010

Самый простой способ - установить значение атрибута 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.

2 голосов
/ 16 января 2010

Посмотрите на эту страницу о сочетаниях клавиш для веб-приложения. Этот сайт предоставляет .js, который выполняет эту функцию.

1 голос
/ 16 января 2010

Вы можете использовать любую библиотеку JavaScript для предоставления сочетаний клавиш. Поскольку Rails по умолчанию использует Prototype (для вспомогательных методов JavaScript), вы можете проверить prototype-hotkeys .

На этом сайте есть несколько примеров использования.

...