我有一个contenteditable div,我正在尝试使用以下代码在非IE浏览器中获取该div中的插入位置:
var caretPosition = 0, containerEl = null, sel, range;
if (window.getSelection)
{
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
if (range.commonAncestorContainer.parentNode == editableDiv) {
caretPosition = range.endOffset;
}
}
}
它在单行上正确返回文本的插入位置,但是我有多行文本,似乎对于每个新行,每行的插入符号位置都以0开头。我的问题是我需要插入位置包括在前一行中找到的字符数,例如,第二行
caretPosition =第一行的字符数+第二行的插入符号前面的字符数。
它仅返回第二行插入符号前面的字符数。 我怎样才能实现这种行为?或者我怎样才能有另一个范围包括上面一行中的文字?
非常感谢任何建议,谢谢!