Ruby on Rails键盘快捷键

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

最简单的方法是为元素的accesskey属性设置一个值。 如果你想通过Rails做到这一点,你可以通过向submit_tag帮助方法传递一个额外的选项来做到这一点,如下所示:

 <%= submit_tag("Save and Refresh", :accesskey => "R") %> // Equivalent to  

按下Alt + R (或Alt + Shift + R ,具体取决于您的浏览器)时,这将导致该按钮被“点击”。 accesskey属性可用于 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; // ... } }); 

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

请注意,这些解决方案都不依赖于Rails。

在此页面上查看有关Web应用程序的键盘快捷方式。 该站点提供执行此function的.js。

您可以使用任何JavaScript库来提供键盘快捷键。 由于Rails默认使用Prototype (对于JavaScript帮助器方法),您可能想要查看原型 – 热键 。

该网站有一些使用示例。