Witam. Mam skrypt, który po naciśnięciu przycisku wstawia do textarea bbcode (np.: ). Ale jest jeden problem. Mam na swojej witrynie centrowanie tekstu, które wygląda tak [align=center] [/align] i kiedy kliknę na ten przycisk nie pokazuje się tak [align=center] [/align] tylko tak [align=center] [/align=center]. Teraz jak zrobić, żeby nie podwajało tego =center?

JS
Kod
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function storeCaret(selec)
{
if (isMozilla)
{
// Si on est sur Mozilla

oField = document.forms['news'].elements['newst'];

objectValue = oField.value;

deb = oField.selectionstart;
fin = oField.selectionend;

objectValueDeb = objectValue.substring( 0 , oField.selectionstart );
objectValueFin = objectValue.substring( oField.selectionend , oField.textLength );
objectSelected = objectValue.substring( oField.selectionstart ,oField.selectionend );

// alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");

oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/]" + objectValueFin;
oField.selectionstart = strlen(objectValueDeb);
oField.selectionend = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/]");
oField.focus();
oField.setSelectionRange(
objectValueDeb.length + selec.length + 2,
objectValueDeb.length + selec.length + 2);
}
else
{
// Si on est sur IE

oField = document.forms['news'].elements['newst'];
var str = document.selection.createRange().text;

if (str.length>0)
{
// Si on a selectionné du texte
var sel = document.selection.createRange();
sel.text = "[" + selec + "]" + str + "[/]";
sel.collapse();
sel.select();
}
else
{
oField.focus(oField.caretPos);
// alert(oField.caretPos+"\n"+oField.value.length+"\n")
oField.focus(oField.value.length);
oField.caretPos = document.selection.createRange().duplicate();

var bidon = "%~%";
var orig = oField.value;
oField.caretPos.text = bidon;
var i = oField.value.search(bidon);
oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
var r = 0;
for(n = 0; n < i; n++)
{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
pos = i + 2 + selec.length - r;
//placer(document.forms['news'].elements['newst'], pos);
var r = oField.createTextRange();
r.moveStart('character', pos);
r.collapse();
r.select();

}
}
}


Inputy
Kod
<form name="news">
<input type="button" value="b" style="width:50px;font-weight:bold" onclick="storeCaret('b')">
<input type="button" value="i" style="width:50px;font-style:italic" onclick="storeCaret('i')">
<input type="button" value="u" style="width:50px;text-decoration:underline" onclick="storeCaret('u')">
<input type="button" value="quote"style="width:50px" onclick="storeCaret('quote')">
<input type="button" value="code"style="width:50px" onclick="storeCaret('code')">
<input type="button" value="url"style="width:50px" onclick="storeCaret('url')">
<input type="button" value="img"style="width:50px" onclick="storeCaret('img')"><br>
<textarea name="newst"  rows="10" wrap="virtual" cols="45"></textarea>
</form>


przykładowy input z centrowaniem, który podwaja centrowanie

Kod
<input type="button" value="url"style="width:50px" onclick="storeCaret('align=center')">