0

我正在使用 IE 8,我想在 contenteditable div 中创建一个文本范围,该范围应包括插入符号位置之前的所有文本(我在 editableDiv 中知道)。到目前为止,我能够选择 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 中的第一个字符开始并持续到插入符号位置的文本范围?非常感谢你。

4

1 回答 1

1

使用setEndPoint()方法TextRange

var caretRange = document.selection.createRange();
var preCaretRange = document.body.createTextRange();
preCaretRange.moveToElementText(editableDiv);
preCaretRange.setEndPoint("EndToStart", caretRange);

显然,非 IE 浏览器需要不同的代码。

于 2012-10-17T09:31:09.030 回答