Показать сообщение отдельно
  #1 (permalink)  
Старый 18.06.2013, 21:01
Аспирант
Отправить личное сообщение для Simones Посмотреть профиль Найти все сообщения от Simones
 
Регистрация: 13.02.2013
Сообщений: 32

Проблема с BBcodes
Здравствуйте, форумчане ! Пишу небольшой скрипт 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 не хотелось бы юзать, а вот как "свой" сделать корректно работающим ?
Заранее благодарен
Ответить с цитированием