我正在使用I 8,我想在可满足的Div中创建一个文本范围,该文本范围应包括所有文本,直到Caret位置(在Editabledablediv中为我知道)。到目前为止,我能够在Div中选择所有文本:
function myFunction(editableDiv, cursorPosition)
{
if (document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(editableDiv);
range.collapse(false);
range.select();
}
}
<div id="myDiv" runat="server" contenteditable="true">
但是,如何创建一个文本范围,该文本范围从DIV中的第一个字符开始并持续到CARET位置?非常感谢。
使用TextRange
的setEndPoint()
方法:
var caretRange = document.selection.createRange();
var preCaretRange = document.body.createTextRange();
preCaretRange.moveToElementText(editableDiv);
preCaretRange.setEndPoint("EndToStart", caretRange);
显然,您需要针对非IE浏览器的不同代码。