得到插入最后的位置

时间:2016-12-07 15:19:28

标签: javascript angularjs caret

如何在令人满意的DOM中使用HTML标记进行插入符号偏移? 在Plunker中我没有HTML标签就得到了偏移量。 它的主要思想是,插入特殊文字,我想要的地方。

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: 是的,我的问题可能有类似,已经存在于stackoverflow中,但有一些小差异

UPD2: 问题解决了。工作示例here

0 个答案:

没有答案