0

How to get caret offset with HTML tags in contenteditable DOM? In Plunker i'm getting offset without HTML tags. The main idea it, insert special text, where i want.

function getCaretCharacterOffsetWithin(element) {
        var caretOffset = 0;

        try {
            if (typeof window.getSelection != "undefined") {
                var range = window.getSelection().getRangeAt(0);
                var preCaretRange = range.cloneRange();
                preCaretRange.selectNodeContents(element);
                preCaretRange.setEnd(range.endContainer, range.endOffset);
                caretOffset = preCaretRange.toString().length;
            } else if (typeof document.selection != "undefined" && document.selection.type != "Control") {
                var textRange = document.selection.createRange();
                var preCaretTextRange = document.body.createTextRange();
                preCaretTextRange.moveToElementText(element);
                preCaretTextRange.setEndPoint("EndToEnd", textRange);
                caretOffset = preCaretTextRange.text.length;
            }
        } catch (e) {

        }

        return caretOffset;
    }

Plunker

UPD: Yes, my question may have similar, that already exist in stackoverflow, but with some small differences

UPD2: Problem is solved. Work example here

Fikret
  • 263
  • 1
  • 3
  • 14
  • Possible duplicate of [Get caret position in contentEditable div](http://stackoverflow.com/questions/3972014/get-caret-position-in-contenteditable-div) – ntahoang Dec 07 '16 at 15:23
  • @ntahoang It doesn't work with html tags inside, not dublicate https://jsfiddle.net/9ez0qb1o/ – Fikret Dec 07 '16 at 15:33

0 Answers0