файл: /vbcode.js
Функция: vbcode()
Строка файла: 106
theform.message.value += "["+vbcode+"]";
arraypush(tags,vbcode);
Эту строку надо заменить на:
!insertTag(theform.message,vbcode) ? arraypush(tags,vbcode) : true ;
Снизу файла /vbcode.js вставить функцию:
function insertTag(field,tag,one) {
codes=\'[\'+tag+\']\'
codee=\'[/\'+tag+\']\'
returned = false
field.focus();
decrement=0
if (!document.all&&!field.selectionStart){
field.selectionStart=1
decrement=1
}
if (field.selectionStart){
var msg = field;
var val = msg.value;
msg.value = val.substring(0, msg.selectionStart-decrement) + codes +
val.substring(msg.selectionStart-decrement, msg.selectionEnd) + codee +
val.substring(msg.selectionEnd, val.length);
return true;
}
if (typeof(document.selection) == \'undefined\') {
field.value = field.value + codes // + codee;
returned = false
} else {
var rng = document.selection.createRange( );
if (rng.text) {
document.selection.createRange().text = codes + rng.text + codee;
returned = true
} else {
field.value = field.value + codes // + codee;
returned = false
}
field.focus();
}
return returned
}
Что было: строка theform.message.value += "["+vbcode+"]"; просто прибавляла код [тег] к значению поля.
Что теперь: Функция insertTag() в отличие от этой строки ПЫТАЕТСЯ найти текст, который выделен, и заключить его в тег.
Если ничего не выделено, то функция действует как прежняя строка
arraypush(tags,vbcode); - тег считается открытым, если функция возвратит true
Резюме: я просто предложил. Ваше дело, попробовать или нет