Page 1 sur 1

comment insérer du code autour du text selectioné?

Posté : 08 févr. 2007, 01:18
par karvboy
voici mon dilemme;

J'aimerais pouvoir sélectionner une portion de text dans le textarea, et ensuite pouvoir cliquer sur un bouton afin que le text selectionné soit ensuite entourré par le code [ b ] et [ /b ] dans le textarea. Comment-puis-je arriver à faire cela?

Est-ce que quelqu'un pourrait m'aider? Un exemple m'aiderais vachement gros à comprendre le concept.

Merci!

Posté : 08 févr. 2007, 10:36
par Ryle
Une petite recherche sur le forum du mot clé "bbcode" devrait t'apporter une tripoté de résultats, d'exemples, et d'explications sur le sujet :)

Posté : 08 févr. 2007, 12:50
par Genova
Bonjour,
essaie avec ce code :

Code : Tout sélectionner

/* ** Insertion de texte dans un textarea ** ----- ** id :: ID du textarea ** open :: Ouverture ** defaultText :: Texte central ** close :: Fermeture */ function launch_insert_text(id, open, defaultText, close) { var txtarea = document.getElementById(id); txtarea.focus(); // IE support if (document.selection) { insert_ie(open, defaultText, close, txtarea); } // MOZILLA support else if (txtarea.selectionStart || txtarea.selectionStart == '0') { insert_mozilla(open, defaultText, close, txtarea); } else { txtarea.value += open + defaultText + close; } } function insert_ie(open, defaultText, close, txtarea) { if (txtarea.createTextRange) { txtarea.focus(txtarea.caretPos); txtarea.caretPos = document.selection.createRange().duplicate(); if (txtarea.caretPos.text.length > 0 && open != '') { defaultText = txtarea.caretPos.text; } txtarea.caretPos.text = open + defaultText + close; } } function insert_mozilla(open, defaultText, close, txtarea) { var x = txtarea.scrollTop; var selStart = txtarea.selectionStart; var selEnd = txtarea.selectionEnd; var selLength = selEnd - selStart; var textStart = txtarea.value.substring(0,selStart); var textEnd = txtarea.value.substring(selEnd, txtarea.textLength); if (selLength != 0 && open != '') { defaultText = (txtarea.value).substring(selStart, selEnd) } if (x == 0 && (txtarea.textLength == selStart)) { x = txtarea.textLength + 200; } txtarea.value = textStart + open + defaultText + close + textEnd; var txt = open + defaultText + close; var cur_pos = selStart + txt.length; txtarea.scrollTop = x; if (!(selLength != 0 && open != '')) { txtarea.selectionStart = selStart + open.length; txtarea.selectionEnd = txtarea.selectionStart + defaultText.length; } else { txtarea.selectionStart = selStart + open.length; txtarea.selectionEnd = selEnd + open.length; } }
pour l'utilisation :

Code : Tout sélectionner

<textarea id="id_du_textarea"></textarea><br /> <input type="button" value="Gras" onclick="launch_insert_text('id_du_textarea', '[b]', 'Texte par defaut', '[/b]')" />

Posté : 08 févr. 2007, 23:58
par karvboy
Oh mes très grands remerciements Genova! Je vais pouvoir étudier ça, merci!

Posté : 09 févr. 2007, 00:12
par Truc
Oh mes très grands remerciements Genova! Je vais pouvoir étudier ça, merci!
Même si Ryle ne t'a pas donné de code il a tout de même répondu... :roll: