3

可能重复: 在 contentEditable div 中获取插入符号位置

我有一个 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 = 第一行的字符数 + 第二行插入符号前面的字符数。

它仅返回第二行插入符号前面的字符数。我怎样才能实现这种行为?或者我怎样才能有另一个范围,其中包括在上面的行中找到的文本?

任何建议都非常感谢,谢谢!

4

0 回答 0