Здравствуйте, форумчане ! Пишу небольшой скрипт bbcode и никак не могу справится с такой вот проблемой:
В textarea поле выделяю текст (ф-я getSelText), нажимаю на кнопку ббкода ( onclick="bbcode('
', '', '#text');" ) но если выделенная комбинация попадается в самом поле, то затирается первая попавшиеся (т.е. не всегда та, которая была выделена).
getSelText:
function getSelText (){
var userSelection, ta;
if (window.getSelection && document.activeElement){
if (document.activeElement.nodeName == "TEXTAREA" ||
(document.activeElement.node
Name == "INPUT" &&
document.activeElement.getAttrib
ute("type").toLowerCase() == "text")){
ta = document.activeElement;
userSelection = ta.value.substring(ta.selectionStart, ta.selectionEnd);
return userSelection;
} else {
userSelection = window.getSelection();
return userSelection;
}
} else {
// all browsers, except IE before version 9
if (document.getSelection){
userSelection = document.getSelection();
return userSelection;
}
// IE below version 9
else if (document.selection){
userSelection = document.selection.createRange();
return userSelection;
}
}
}
BBcode:
function bbcode(open,close,form) {
$(form).focus();
var select = getSelText(); //Выделенный текст
var now = $(form).val(); //Текущее содержимое текстового поля
if(select != '') {
var now = now.replace(select, open+select+close); //Замена выделенного
$(form).val(now);
}else{
$(form).val(now+open+close);
}
}
"Тяжелый" редактор, вроде wysiwyg не хотелось бы юзать, а вот как "свой" сделать корректно работающим ?
Заранее благодарен