Показать сообщение отдельно
  #1 (permalink)  
Старый 09.04.2014, 20:22
Аватар для Sanu0074
Аспирант
Отправить личное сообщение для Sanu0074 Посмотреть профиль Найти все сообщения от Sanu0074
 
Регистрация: 16.12.2012
Сообщений: 80

Обернуть тегами выделенный фрагмент текста
Есть такой блок:
<div class="editor-content" id="editor-content" contenteditable="true">
    as dd sad as
</div>

кусок плагина в котором проверяю выделение:
getSel = function(element) {
                var start = 0, end = 0;
                var sel, range, priorRange;
                if (typeof window.getSelection != "undefined") {
                    range = window.getSelection().getRangeAt(0);
                    priorRange = range.cloneRange();
                    priorRange.selectNodeContents(element);
                    priorRange.setEnd(range.startContainer, range.startOffset);
                    start = priorRange.toString().length;
                    end = start + range.toString().length;
                } else if (typeof document.selection != "undefined" &&
                        (sel = document.selection).type != "Control") {
                    range = sel.createRange();
                    priorRange = document.body.createTextRange();
                    priorRange.moveToElementText(element);
                    priorRange.setEndPoint("EndToStart", range);
                    start = priorRange.text.length;
                    end = start + range.text.length;
                }
                return {
                    start: start,
                    end: end
                };
            },
        
            alertSelection = function() {
                var mainDiv = document.getElementById(sett.id);
                var sel = getSel(mainDiv);
                var val = editor.html();
                var text = val.substr(0,sel.start) + "[abcd]" + val.substr(sel.start,sel.end) + "[/abcd]" + val.substr(sel.end,val.length);
                
                alert(text);
            }

при выделении символов "dd", alert выводит следующее: "as [abcd]dd sad as[/abcd] sad as"
хотя по логике должно вывести это: "as [abcd]dd[/abcd] sad as"

проверял что возвращает функция getSel(), все правильно работает...

непойму почему так...
помогите разобраться.

и желательно пример где подобная задача решается, именно такая... много перегуглил уже
зараннее спасибо)
p.s. просьба не троллить по поводу BB, т.к. [b] - здесь исключительно для примера
Ответить с цитированием