可能重复:
Ruby on Rails keybard shortcutsRuby on Rails的keybard快捷方式
大家好 - 没有人知道如何在我的网站使用Ruby on Rails来建立键盘快捷方式?例如,如果用户想使用键盘快捷键而不是点击按钮/链接与网站进行交互,我会如何做到这一点?
任何帮助,非常感谢。
最大。
可能重复:
Ruby on Rails keybard shortcutsRuby on Rails的keybard快捷方式
大家好 - 没有人知道如何在我的网站使用Ruby on Rails来建立键盘快捷方式?例如,如果用户想使用键盘快捷键而不是点击按钮/链接与网站进行交互,我会如何做到这一点?
任何帮助,非常感谢。
最大。
最简单的方法是为元素的accesskey
属性设置一个值。如果你想通过Rails的做到这一点,你可以通过传递一个额外的选项给submit_tag
helper方法做到这一点,像这样:
<%=submit_tag("Save and Refresh", :accesskey => "R") %>
// Equivalent to <input type="submit" value="Save and Refresh" accesskey="R" />
这将导致该按钮是“点击”当Alt + R(或按Alt + Shift + R,取决于您的浏览器)。 accesskey
属性可用于<input>
,<button>
和<a>
HTML元素。
如果您正在寻找更复杂的东西(例如GMail的键盘快捷键),您将不得不编写一些javascript。它的核心将是一个事件处理程序,它监视文档上的按键,然后调用其他JavaScript函数来运行您按下某个键时所需的代码。下面是基于一个按键(这使用原型,这是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 question与交易Javascript中的键盘快捷键。
请注意,这些解决方案都不是真的依赖于Rails。
Lokk在this site这是关于rails并提供了一个.js在应用程序上使用键盘快捷键。