Сочетания клавиш Ruby on Rails

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

6
задан Jasper 13 September 2011 в 09:04
поделиться

3 ответа

Самый простой способ - установить значение для атрибута 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 + + + R , в зависимости от вашего браузера). Атрибут Accesskey AccessKey доступна для , <КНОПКА> и HTML-элементы.

Если вы хотите сделать что-то более сложное (например, ярлыки клавиатуры Gmail, например), вам придется написать какой-нибудь JavaScript. Основным ядром является обработчик событий, который смотрит на клавишу на документе, а затем вызывает другие функции JavaScript для запуска кода, который вы хотите, когда нажата определенная клавиша. Вот очень упрощенный способ настройки ярлыков на основе ключевой печати (это использует прототип, который является библиотекой JavaScript, которую рельсы используют по умолчанию, и является непроверенной):

$(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;

    // ...
  }
});

вот еще один так вопрос Справляются с сочетаниями клавиш в JavaScript.

Обратите внимание, что ни одно из этих решений вообще не полагаются на рельсы.

8
ответ дан 9 December 2019 в 22:35
поделиться

из wikipedia: dynamic language runtime

Службы DLR в настоящее время используются в версия для разработки IronRuby, .NET реализация Ruby и для IronPython.

В 2007 году Microsoft планировала использовать DLR для предстоящей версии Visual Basic .NET 10.0 (VBx) и Managed JScript (ECMAScript 3.0). Однако по состоянию на август 2009 года Microsoft больше не имеет планов для реализации Managed JScript (ECMAScript 3.0) на DLR, и больше никаких упоминаний о Visual Basic .NET работает с DLR был создан Microsoft на Visual Базовые обновления для разработки. Аналогично C #, Visual Basic сможет доступ к объектам из динамических языков построен на DLR, такой как IronPython и IronRuby [.

IronScheme, предстоящая схема реализация [, планировала на основе DLR, но решил отказаться от этой идеи, потому что DLR ветвь используемого проекта вышла из синхронизировать с багажником, а также потому, что DLR, по словам разработчиков, не может поддержать большинство Требования схемы.

-121--3147293-

Стек и Очередь являются более совершенными способами обработки коллекции, которая сама по себе является массивом, не устанавливающим порядка поведения элементов внутри коллекции.

Стеки (LIFO - Last in first out) и очередь (FIFO - First in First out) устанавливают порядок вставки и удаления элементов из коллекции.

Для реализации образца стека или очереди можно использовать массив или связанный список в качестве структуры места хранения. Или даже создать с этими базовыми структурами более сложные узоры, такие как двоичные деревья или приоритетные очереди, которые также могут привести не только порядок во вставке и удалении элементов, но и сортировка их внутри коллекции.

-121--1267641-

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

2
ответ дан 9 December 2019 в 22:35
поделиться

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

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

1
ответ дан 9 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: