Здравствуйте! Доброго времени суток!
Есть такой скрипт, который вставляет в textarea смайлики и bb-код. Работает под все браузеры. Но при вставке bb-кода вокруг выделенного текста он сбрасывает выделение.
Как сделать, чтобы выделение сохранялось?
Заранее благодарю.
Скрипт:
<script language="javascript" type="text/javascript">
function addText(Text,Message)
{
var obj = document.form.message;
obj.focus();
if (document.selection && document.selection.createRange) // Internet Explorer
{
sel = document.selection.createRange();
if (sel.parentElement() == obj) sel.text = Text;
}
else if (typeof(obj) != "undefined") // Firefox
{
var longueur = parseInt(obj.value.length);
var selStart = obj.selectionStart;
var selEnd = obj.selectionEnd;
obj.value = obj.value.substring(0,selStart) + Text + obj.value.substring(selEnd,longueur);
}
else obj.value += Text;
obj.focus();
}
function addTags(Tag,fTag,Message)
{
var obj = document.form.message;
obj.focus();
if (document.selection && document.selection.createRange) // Internet Explorer
{
sel = document.selection.createRange();
if (sel.parentElement() == obj) sel.text = Tag + sel.text + fTag;
}
else if (typeof(obj) != "undefined") // Firefox
{
var longueur = parseInt(obj.value.length);
var selStart = obj.selectionStart;
var selEnd = obj.selectionEnd;
obj.value = obj.value.substring(0,selStart) + Tag + obj.value.substring(selStart,selEnd) + fTag + obj.value.substring(selEnd,longueur);
}
else obj.value += Tag + fTag;
obj.focus();
}
</script>
Форма:
<form method="post" name="textform" action="obrabotchik.php">
<a title="Bold:" onmousedown="addTags('[B]','[/B]')" style="background-color:#F7F7F7; font-size:10pt; border: outset white 1px;"> <b>B</b> </a>
<img src="smile.gif" title="[:)]" onmousedown="addText('[:)]')">
<textarea wrap="VIRTUAL" name="message" cols="50" rows="10"></textarea>
</form>