Comment affecter une méthode à un événement du champ d'édition?
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
J'aimerais affecter un raccourci clavier du type ctrl+clé sur le champ de saisie des messages pour le forum, les news, les articles et les commentaires.
Évidemment, je veux y mettre une méthode en javascript déclenché par un événement du type onkeydown ou un truc du genre.
À vrai dire, je veux que lorsque l'on est dans le champ de saisie, une combinaison ctrl+b insère le bbcode [b][/b].
Pour la fonction Javascript, j'ai tout ce qu'il me faut.
Mon problème, c'est que je ne sais pas où je peux affecter cet événement. J'ai bien vu les événements associés aux différents boutons de la barre d'outils (dans /template/default/frameowrk/content/editor/editor.tol.
mais si je regarde dans les templates où le champ de saisie se retrouve, je n'ai que la variable {KERNEL_EDITOR} qui fait référence à une méthode display_editor() qui elle fait référence à une autre fonction....
Bref, comment je peux affecter cet événement qui déclenchera la méthode ?
Merci à l'avance.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
ReidLos :
Il faut que tu fasse attention. CTRL+B par exemple sur Firefox est déjà utilisé pour les marque pages.
Oui, je sais. Mais je veux que le raccourci clavier fonctionne seulement lorsque le champ d'édition reçoit l'événement et voilà pourquoi je veux attacher la méthode à l'événement déclencher lors de l'édition dans le champ de saisie.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code JAVASCRIPT :
Event.observe('{FIELD}', 'focus', function() { //Traitement : Si CTRL + B ... });
Édité par ReidLos Le 18/05/2011 à 19h27
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Merci pour le code, mais je le mets où dans le fichier ?
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Code JAVASCRIPT :
var isCtrl = false; document.onkeyup = function(e){ if(e.which == 17) isCtrl = false; } document.onkeydown = function(e) { if(e.which == 17) isCtrl = true; if(e.which == 66 && isCtrl == true) { insertbbcode('[b]', '[/b]', '{FIELD}'); return false; } }
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Il faut faire un truc du type :
Code JAVASCRIPT :
Event.observe('{FIELD}', 'focus', function() { var isCtrl = false; document.onkeyup = function(e){ if(e.which == 17) isCtrl = false; } document.onkeydown = function(e) { if(e.which == 17) isCtrl = true; if(e.which == 66 && isCtrl == true) { insertbbcode('[b]', '[/b]', '{FIELD}'); return false; } } });
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Je te confirme que ça ne marche pas... Le ctrl+b affiche les marques-pages....
On dirait qu'il n'est pas capable de capturer l'événement asocié au champ d'édition (qui ici je présume est {FIELD}).
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
À la base, je dirais que oui. Là où je ne suis pas sûr c'est qu'en l'état il peut s'appliquer à un champ d'édition. C'est la variable document qui m'embête. J'ai plutôt l'impression que le document va capter l'événement... et donc le navigateur.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Citation :
J'ai plutôt l'impression que le document va capter l'événement... et donc le navigateur.
Bah oui, mais la condition plus haut vérifie qu'on se situe bien dans l'élément.
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Je te reviens à ce sujet. je me demande la chose suivante : pourquoi utiliser {FIELD} ici ? Cette variable représente le champ d'édition ? Ce ne devrait pas plutôt être {KERNEL_EDITOR} tel qu'on le retrouve dans le template du forum topic.tpl ?
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie