OVH Cloud OVH Cloud

Colorier differemment les mots d'un textarea

4 réponses
Avatar
Fabien LE LEZ
Bonjour,

Je souhaite mettre, sur une page web, un endroit où l'utilisateur peut
taper du texte (plusieurs phrases), avec coloration des mots pendant
la frappe (suivant un critère donné -- le nombre de lettres du mot par
exemple).

Pour l'instant, j'en suis arrivé à un <textarea>, avec derrière, un
ensemble de <span>, contenant le même texte avec la même police, mais
avec un fond coloré.
Cf <http://perso.edulang.com/temp/demo.html>. (Pour cette démo, la
couleur change suivant que le nombre de lettres du mot est pair ou
impair. Le changement de couleur du fond est un pis-aller ; j'aimerais
mieux que ce soit la couleur du texte en lui-même qui change.)

Cette solution est franchement bâtarde : non seulement j'ai eu
énormément de mal à gérer les espaces (Ben oui, dans un <textarea>,
deux espaces consécutifs sont affichés, tandis que dans un <span>, ces
deux espaces sont considérés comme un seul), mais en plus, il y a
énormément de cas à gérer (par exemple, l'ascenseur qui prend quelques
pixels et décale tout).

Y a-t-il une solution fiable ?
Faut-il que je programme, en Javascript, un remplaçant plus évolué à
<textarea> ?
Ou dois-je abandonner cette piste, et utiliser du Flash à la place ?

Merci d'avance pour vos pistes et conseils...

4 réponses

Avatar
olivier

Merci d'avance pour vos pistes et conseils...


J'ai fait un "truc" qui s'approche de ce que tu cherches. C'est codé un
peu vite et surtout il y a 2 zones mais ça fait quand même moins usine à
gaz que ta solution. Je suis curieux de voir le produit fini !

HTH! http://tinyurl.com/fx8dl

--
olivier

Avatar
Fabien LE LEZ
On Mon, 10 Jul 2006 17:24:03 +0200, olivier :

J'ai fait un "truc" qui s'approche de ce que tu cherches.


J'y avais effectivement pensé, mais je cherche vraiment un affichage
des couleurs dans la zone de saisie.

En attendant, j'ai trouvé <http://www.fckeditor.net/> et
<http://www.openwebware.com/products/openwysiwyg/> (avec pas mal
d'adaptations en perspective), mais j'ai peur qu'ils ne soient pas
compatibles avec tous les navigateurs.

En prime, la coloration est indispensable pour mon application ; du
coup, je ne peux pas accepter que ce soit remplacé par un simple
textarea sur les navigateurs non supportés.

Avatar
Fabien LE LEZ

Je souhaite mettre, sur une page web, un endroit où l'utilisateur peut
taper du texte (plusieurs phrases), avec coloration des mots pendant
la frappe (suivant un critère donné -- le nombre de lettres du mot par
exemple).


Manifestement c'est impossible en Javascript (à moins de faire du code
spécifique IE).
J'ai fini par faire un truc en Flash. Au cas où quelqu'un serait
intéressé, j'ai mis ça là :
<http://perso.edulang.com/temp/demo-flash.zip>.

Avatar
Jean-Marc Molina
Fabien LE LEZ wrote:
Manifestement c'est impossible en Javascript (à moins de faire du code
spécifique IE).


Le plus simple serait de se tourner vers un framework JavaScript mais il
manquera toujours un navigateur à la liste des compatibles.

J'ai fini par faire un truc en Flash. Au cas où quelqu'un serait
intéressé, j'ai mis ça là :
<http://perso.edulang.com/temp/demo-flash.zip>.


J'allais te conseiller d'utiliser un éditeur comme Ekit ou de développer une
petite applet Java... Sympa ce que ça donne en Flash mais je pense que tu
devrais supprimer la coloration tant qu'un mot n'est pas complet, ça
éviterait de voir clignoter sa saisie pendant la frappe.