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...
