Javascript 如何从contenteditable div开始到光标位置获取文本

Javascript 如何从contenteditable div开始到光标位置获取文本,javascript,jquery,cursor-position,Javascript,Jquery,Cursor Position,有没有办法从contenteditable div开始到光标位置获取文本。 例如: <div id="editableDiv" contenteditable="true"> the quick brown fox jumps over a lazy dog. </div> 敏捷的棕色狐狸跳过一只懒狗。 假设1:光标在单词quick后闪烁。对函数的查询必须返回快捷键 假设2:句子末尾的光标闪烁。对函数的查询必须返回快速的棕色狐狸跳过懒狗 这是解决方案 g

有没有办法从
contenteditable div
开始到光标位置获取文本。
例如:

<div id="editableDiv" contenteditable="true">
    the quick brown fox jumps over a lazy dog.
</div>  

敏捷的棕色狐狸跳过一只懒狗。
假设1:光标在单词quick后闪烁。对函数的查询必须返回快捷键

假设2:句子末尾的光标闪烁。对函数的查询必须返回快速的棕色狐狸跳过懒狗

这是解决方案

getTextFromHeadToCaret: function () {
            var element = document.getElementById("editableDiv");
            var caretOffset = 0;
            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;
            }
            var divStr = $('#editableDiv').text();
            return divStr.substring(0, caretOffset);
        }

可能这对你有帮助:
-->
也许这会有帮助:如何从光标位置到终点?明白了<代码>var divStr=$('#editableDiv').text();返回divStr.substring(caretofset,divStr.length)