Est-ce que quelqu'un sait comment configurer des raccourcis clavier à l'aide de Ruby sur les rails sur mon site Web? Par exemple, si un utilisateur souhaite interagir avec le site à l'aide de raccourcis clavier au lieu de cliquer sur les boutons / liens Comment ferais-je cela? P>
3 Réponses :
regarder sur Cette page sur les raccourcis clavier sur une application Web. Ce site fournit un .js qui effectue cette fonctionnalité. P>
Vous pouvez utiliser n'importe quelle bibliothèque JavaScript pour fournir des raccourcis clavier. Puisque les rails utilisent prototype par défaut (pour les méthodes d'assistance JavaScript), vous voudrez peut-être consulter prototype-hottéyses . p>
Il existe des exemples d'utilisation dans ce site Web. P>
Le moyen le plus simple est de définir une valeur pour l'attribut code> Accesskey code> pour vos éléments. Si vous vouliez faire cela via des rails, vous pouvez le faire en passant une option supplémentaire à la méthode qui causera ce bouton Pour être "cliqué sur" quand alt kbd> + r kbd> (ou alt kbd> + shift kbd> + r kbd >, en fonction de votre navigateur) est enfoncé. L'attribut Si vous cherchez à faire quelque chose de plus complexe (comme les raccourcis clavier de Gmail, par exemple), vous devrez écrire du JavaScript. Le cœur de ce serait un gestionnaire d'événements qui veille à des claviers sur le document, puis appelle d'autres fonctions JavaScript pour exécuter le code souhaité lorsque vous appuyez sur une certaine touche. Voici un moyen très simpliste de configurer des raccourcis basés sur une touche Appuyez sur (Ceci utilise le prototype, qui est la bibliothèque JavaScript que les rails utilisent par défaut et non testé): p> Soumettre_tag code>, comme:
Accesskey code> est disponible pour
code> éléments html. P>
$(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;
// ...
}
});