【问题标题】:Ruby on Rails keyboard shortcutsRuby on Rails 键盘快捷键
【发布时间】:2010-01-15 22:06:59
【问题描述】:

有人知道如何在我的网站上使用 Ruby on Rails 设置键盘快捷键吗?例如,如果用户想使用键盘快捷键而不是单击按钮/链接与网站交互,我该怎么做?

【问题讨论】:

    标签: javascript ruby-on-rails user-interface navigation keyboard-shortcuts


    【解决方案1】:

    最简单的方法是为元素的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 属性适用于 &lt;input&gt;&lt;button&gt;&lt;a&gt; HTML 元素。

    如果您想要做一些更复杂的事情(例如 GMail 的键盘快捷键),您将不得不编写一些 javascript。它的核心是一个事件处理程序,它监视文档上的按键,然后在按下某个键时调用其他 javascript 函数来运行您想要的代码。这是一种基于按键设置快捷方式的非常简单的方法(它使用 Prototype,这是 Rails 默认使用的 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;
    
        // ...
      }
    });
    

    这是另一个 SO question 处理 Javascript 中的键盘快捷键。

    请注意,这些解决方案都没有真正依赖 Rails。

    【讨论】:

      【解决方案2】:

      请查看this page,了解 Web 应用程序的键盘快捷键。该网站提供了一个执行此功能的 .js。

      【讨论】:

        【解决方案3】:

        您可以使用任何 JavaScript 库来提供键盘快捷键。由于 Rails 默认使用 Prototype(用于 JavaScript 辅助方法),您可能需要查看 prototype-hotkeys

        该网站上有一些使用示例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多