IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Plusieurs couleurs texte dans un textarea


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut Plusieurs couleurs texte dans un textarea
    Bonjour à tous,

    Je cherche à savoir comment faire pour modifier certain mot dans un textarea. Je cherche mais je me noie dans tout ce que je lis !

    Je cherche à refaire sur mon site ce que l'on peut faire sur un champ textarea sans voir les balise "[B]" ou "[COLOR]" quand on écrit.

    Faut-il installer un kit javascript en plus ? JQuery ???

    Merci de votre aide.

    Un novice.

  2. #2
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    salut,

    tout dépend si tu veux développer ça toi même ou si tu veux utiliser une bibliothèque mais le principe et assé simple.

    il te suffit de faire une fonction sur un "onclick" qui écrit dans le textarea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function ecrire(id du textarea "text1", la valeur à écrire "valeur rouge")
    {
    if(la valeur à écrire == valeur rouge){
    //ici tu récupères la valeur du textarea, ce qu'il y a déjà de saisie//
    var valeurActuelle = document.getElementById(text1).value;
    //ici tu rajoute la valeur + le bbcode//
    document.getElementById(text1).value = valeurActuelle+"[color:red][/color]";
    }
    }
    et après au moment de l'enregistrement dans la base de données ou à la lecture tu utilises les expressions régilières pour convertir les bbcodes en html.

    Voila dans le principe, mais biensur ce n'est pas aussi simple que ça car si tu veux créer une palette de couleur qui génère un code couleur ou si tu veux que le bbcode s'ajoute à l'endroit du curseur et quand plus après l'ajout le curseur se positionne entre les deux balises ou aussi si tu veux que losrque tu surligne un mot les balises entour ce mot, la ça se complique !

    Il existe une fonction javascript qui gère la position du curseur dès que je me rappel laquelle c'est j'éditerai mon post.

    Bon courage

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Fait un recherche sur "editeur wysiwyg javascript".

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    Je préfèrerai developper mon propre code mais cela me parait un peu compliqué pour moi...
    Maintenant c'est en codant qu'on apprend....

    @xess91: merci pour ton bout de code. C'est ce que "j'entrevoyai"! mais effectivement le texte rajouté doit ce situé entre les 2 balise, au niveau du curseur .... Bref merci pour le début. Pour ce qui est d'une pallette de couleur, je n'ai besoin que de 2 ou 3 couleurs prédéfinies. Je voudrais également ne pas voir les bbcodes. Je vais tenter un bout de code...

    @andry.aime : "editeur wysiwyg javascript" mes recherches seront plus facile...

    Merci à tous les deux, je vais travailler tout ça.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    Bon, je suis vraiment trop nul en javascript (et qui plus est impatient voire pressé) que je vais tenter l'import de code de gens qui savent mieux faire que moi !

    J'ai trouvé ce qu'il me fallait (bien que encore un peu trop complet) :
    http://www.gosu.pl/STEditor/

    Free selon l'auteur, doit-je l'informe de mon utilisation (site perso en intranet) ,notamment si je modifie le code ? Exemple:

    j'ai pour la mise en gras une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    html += '<td class="button"><img src="'+this.path+'images/bold.gif" width="20" height="20" alt="Bold" title="Bold" onclick="'+this.objectId+'.execCommand(\'bold\')"></td>';
    	html += '<td class="button"><img src="'+this.path+'images/R.gif" width="20" height="20" alt="red" title="red" onclick="'+this.objectId+'.execCommand(\'red\')"></td>';
    j'ai copié/collé ce code et remplacé bold par red, mais je crains que la méthode soit trop simpliste puisque cela ne fonctionne pas !

    K.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    Ca y est !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execCommand(\'foreColor\',\'red\')"
    http://fr.jsinfo.wikia.com/wiki/ExecCommand

    (Que c'est bon de trouver seul... ou presque !)

    Encore merci pour votre aide.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    J'en reviens à mon éditeur :

    Comment faire pour déclencher l'enregistrement du texte sur un onblur=submit(); ?

    Je ne veux pas (si c'est possible) utiliser de button submit.

    J'ai bien mis onblur=submit(); dans la balise textearea ou iframe : rien n'y fait l'enregistrement ne se fait pas....

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    onclick fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=\"text\" value=\"submit\" onclick=\"ste.submit()\" >
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <textarea id=\"pci\" name=\"pci\" wrap=\"physical\" onblur=\"ste.submit()></textarea>;
    <script type=\"text/javascript\">;
            var ste = new SimpleTextEditor('pci', 'ste');
    	ste.init();
    </script>;
    ne fonctionne pas.

    ????

Discussions similaires

  1. Couleur texte dans ListBox disabled
    Par inc002 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/08/2007, 11h47
  2. Ouvrir plusieurs fichier textes dans un dossier : *texte.txt
    Par Jenn74 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2007, 16h52
  3. Insertion de TEXT dans un TEXTAREA
    Par Slaash0 dans le forum Langage
    Réponses: 7
    Dernier message: 10/05/2007, 10h48
  4. Réponses: 17
    Dernier message: 02/03/2007, 09h46
  5. placer un texte dans une textarea en cliquant sur un bouton
    Par BernardT dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/11/2005, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo