La méthode la plus simple consiste à définir une valeur pour l'attribut accesskey
pour vos éléments. Si vous vouliez faire à travers Rails, vous pouvez le faire en passant une option supplémentaire à la méthode d'assistance submit_tag
, comme ceci:
<%=submit_tag("Save and Refresh", :accesskey => "R") %>
// Equivalent to <input type="submit" value="Save and Refresh" accesskey="R" />
qui provoquera ce bouton pour être « clicked » lorsque Alt + R (ou Alt + Maj + R, en fonction de votre navigateur) est pressé. L'attribut accesskey
est disponible pour les éléments HTML <input>
, <button>
et <a>
.
Si vous cherchez à faire quelque chose de plus complexe (comme les raccourcis clavier de GMail, par exemple), vous devrez écrire du javascript. Le noyau de ce serait un gestionnaire d'événements qui surveille les touches sur le document, puis appelle d'autres fonctions javascript pour exécuter le code que vous voulez quand une certaine touche est pressée. Voici une manière très simpliste de mettre en place des raccourcis sur la base d'une pression de touche (ce qui utilise Prototype, qui est la bibliothèque Javascript que Rails utilise par défaut, et non testé):
$(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;
// ...
}
});
Voici une autre SO question qui traite raccourcis clavier en Javascript.
Notez qu'aucune de ces solutions ne repose vraiment sur Rails.