Je rencontre un problème assez génant avec mon script de bbcode. Lorsque j'insère une balise (par ex: [g][/g]), le curseur reste bien entre les deux balises, mais je retourne au début du formulaire. Je suis obligé de redescendre la barre déroulante du formulaire (dans les longs textes) pour pouvoir continuer à insérer des balises.
Je ne sais pas si j'ai été clair.
Je voudrais que mon texte ne bouge pas lorsque j'insère des balises.
Voici mon code JS :
function bbcode(bbdebut, bbfin)
{
var input = window.document.formulaire.message;
input.focus();
if(typeof document.selection != 'undefined')
{
var range = document.selection.createRange();
var insText = range.text;
range.text = bbdebut + insText + bbfin;
range = document.selection.createRange();
if (insText.length == 0)
{
range.move('character', -bbfin.length);
}
else
{
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
}
range.select();
}
else if(typeof input.selectionStart != 'undefined')
{
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
var pos;
if (insText.length == 0)
{
pos = start + bbdebut.length;
}
else
{
pos = start + bbdebut.length + insText.length + bbfin.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
else
{
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos))
{
pos = prompt("insertion (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length)
{
pos = input.value.length;
}
var insText = prompt("Veuillez taper le texte");
input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
}
}
function smilies(img)
{
var input = window.document.formulaire.message;
input.focus();
var pos;
pos = input.selectionStart;
input.value = input.value.substr(0, pos) + img + input.value.substr(pos);
input.selectionStart = pos + img.length;
input.selectionEnd = pos + img.length;
}
[JS] Problème de retour au début du formulaire (bbcode)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.