【发布时间】:2012-10-17 09:04:44
【问题描述】:
我正在使用 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 中的第一个字符开始并持续到插入符号位置的文本范围?非常感谢。
【问题讨论】:
-
你的editableDiv中除了文本节点还有其他节点吗?跨度,字体重量标签等?如果没有,您可以使用选择对象中第一个范围的 endOffset 属性。
-
插入符号位置如何表示?
-
cursorPosition 是一个整数,用于跟踪在插入符号之前找到的字符数(它不考虑 html 元素,而只考虑 div 中插入符号之前的 innerText 长度)。跨度>
-
@Asad 是的,我的 editableDiv 中有跨度。
标签: javascript html contenteditable caret textrange