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 :

Mise forme du texte dans une TEXTAREA


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut Mise forme du texte dans une TEXTAREA
    bonjour,
    j'essaie de créer une boite de texte avec des boutons pour changer la mise en forme du texte

    html:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!DOCTYPE html5>
    <!--[if lt IE 7 ]> <html class="no-js ie6"> <![endif]-->
    <!--[if IE 7 ]>    <html class="no-js ie7"> <![endif]-->
    <!--[if IE 8 ]>    <html class="no-js ie8"> <![endif]-->
    <!--[if IE 9 ]>    <html class="no-js ie9"> <![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--> <html lang="fr"> <!--<![endif]-->
    	<head>
        <meta http-equiv="content-type"	charset="UTF-8" content="text/html">
        <title>MESSAGE</title>
        <link href="css/styles/reset.css" rel="stylesheet" type="text/css" />
        <link rel="stylesheet" type="text/css" href="css/styles/page.css">
    	  <link rel="shortcut icon" type="image/png"  href="favicon.png" />
    	  <meta name="viewport" content="width=device-width">
    		<!--[if lt IE 9]>
    	    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    		<![endif]-->
    	</head>
    	<body>
        	<section>
        	<nav>
        		<button id="maj"><img src="img/btn/uppercase.jpg" width="45" height="45" alt=""></button>
        		<button id="min"><img src="img/btn/minuscule.jpg" width="45" height="45" alt=""></button>
        		<button id="b"><img src="img/btn/bold.jpg" width="45" height="45" alt=""></button>
        		<button id="u"><img src="img/btn/underliined.jpg" width="45" height="45" alt=""></button>
        		<button id="i"><img src="img/btn/iitalic.jpg" width="45" height="45" alt=""></button>
        		<button id="pmaj"><img src="img/btn/smallcaps.jpg" width="45" height="45" alt=""></button>
        		<button id="r"><img src="img/btn/red.jpg" width="45" height="45" alt=""></button>
        		<button id="l_t"><img src="img/btn/line_through.jpg" width="45" height="45" alt=""></button>
        	</nav>
        	<form>
    		<textarea id="t" rows="15" cols="70"></textarea>    	
        	</form>
        	</section>
    		<script type="text/javascript" src="js/script.js"></script>
    	</body>
    </html>

    js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    var text_sel;
     
        function addEvent(element, event, func) { // Une fonction pour gérer les événements sous tous les navigateurs
            if (element.attachEvent) {
                element.attachEvent ('on' + event, func);
            } 
            else {
                element.addEventListener (event, func, false);
            }
        };
     
    function getSelected() {
    	if(window.getSelection) { return window.getSelection(); }
    	else if(document.getSelection) { return document.getSelection(); }
    	else {
    		var selection = document.selection && document.selection.createRange();
    		if(selection.text) { return selection.text; }
    		return false;
    	}
    	return false;
    } 
     
    var t = document.getElementById('t');
    addEvent (t, 'select', function () {
         text_sel = getSelected();
         var ts = text_sel.style;
         var maj = document.gettElementById('maj');
         addEvent (maj, 'click', function () {
             ts.textTransform = 'uppercase';
         });
         var min = document.gettElementById('min');
         addEvent (min, 'click', function () {
             ts.textTransform = 'lowercase';
         });
         var pmaj = document.gettElementById('pmaj');
         addEvent (pmaj, 'click', function () {
             ts.fontVariant = 'smalllcaps';
         });
         var b = document.gettElementById('b');
         addEvent (b, 'click', function () {
             ts.fontWeight = 'bold';  
         });
         var u = document.gettElementById('u');
         addEvent (u, 'click', function () {
             ts.textDecoration = 'underline':
         });
         var i = document.gettElementById('i');
         addEvent (i, 'click', function () {
             ts.fontStyle = 'italic';
         });
         var r = document.gettElementById('r');
         addEvent (r, 'click', function () {
             ts.color = 'red';
         });
         var l_t = document.gettElementById('l_t');
         addEvent (l_t, 'click', function () {
             ts.textDecoration = 'line-through';
         });
    });

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    sans parler des erreurs dans ton code, tu ne pourras rien faire au niveau de la mise en format du contenu de ta TEXTAREA, elle n'est pas prévue pour cela.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut
    Salut,

    excuse-moi mais je ne comprends pas comment la prévoir pour ça

    et si il y a des erreurs, j'aimerais bien les connaître

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    le textarea est un composant standard du html destiné à editer du texte brut et que du texte brut
    aucune mise en forme.


    pour éditer avec mise en forme il te faut un éditeur ad-hoc
    pour cela voir
    http://en.wikipedia.org/wiki/Online_rich-text_editor
    A+JYT

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Citation Envoyé par aertys Voir le message
    et si il y a des erreurs, j'aimerais bien les connaître
    Pas de soucis

    <!DOCTYPE html5> n'existe pas. C'est <!DOCTYPE html>. L'absence de numéro de version dans le doctype est intentionnelle.
    <meta http-equiv="content-type" charset="UTF-8" content="text/html"> ne marchera pas comme tu l'attends. Au mieux l'attribut charset sera ignoré, au pire c'est la meta toute entière qui est zappée. C'est soit <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> soit <meta charset="utf-8">.

    Je t'invite aussi à réfléchir au rôle des images dans tes éléments <button>. Sans leurs images, ces boutons n'auraient aucun contenu et donc ne seraient pas fonctionnels. Ce n'est pas correct de mettre alt="", tu dois donner du texte alternatifs à tes images.

    Sekaijin et NoSmocking ont raison, tu ne peux pas contrôler la mise en forme dans un textarea, il te faut un éditeur riche. En guise d'exemple celui de ce forum est TinyMCE.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il y en a d'autres dans la partie JavaScript.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    text_sel = getSelected();
    var ts = text_sel.style;
    La fonction getSelected() renvoie une chaine, or une chaine ne possède pas de propriété style.
    D'autre part, la même fonction est susceptible de renvoyer un booléen, tu dois donc tester ce que tu récupères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var maj = document.gettElementById('maj');
    get pas gett.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut
    j'ai corrigé mes codes, suis allé voir des sites sur les rich text editors,mais je ne comprends toujours pas comment m'en servir. Pouvez-vous m’éclairer?

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Que dire de plus que choisis en un et suis les instructions, tutoriels et documentation fournis.

    Si par la suite tu rencontres un problème précis dans ce cas on tachera de t'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Mise en forme de texte dans une cellule
    Par PapyInfo dans le forum Conception
    Réponses: 14
    Dernier message: 21/12/2013, 23h47
  2. Mise en forme de texte dans une barre d'outils
    Par Christophe dans le forum Débuter
    Réponses: 2
    Dernier message: 02/01/2012, 08h48
  3. Réponses: 5
    Dernier message: 27/04/2007, 15h06
  4. [access 2007] Mettre en forme du texte dans une requête
    Par kvoskol dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/03/2007, 16h35
  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