您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

获取contentEditable插入符号索引位置

获取contentEditable插入符号索引位置

以下代码假定:

码:

function getcaretposition(editableDiv) {

  var caretPos = 0,

    sel, range;

  if (window.getSelection) {

    sel = window.getSelection();

    if (sel.rangeCount) {

      range = sel.getRangeAt(0);

      if (range.commonAncestorContainer.parentNode == editableDiv) {

        caretPos = range.endOffset;

      }

    }

  } else if (document.selection && document.selection.createRange) {

    range = document.selection.createRange();

    if (range.parentElement() == editableDiv) {

      var tempEl = document.createElement("span");

      editableDiv.insertBefore(tempEl, editableDiv.firstChild);

      var tempRange = range.duplicate();

      tempRange.movetoElementText(tempEl);

      tempRange.setEndPoint("EndToEnd", range);

      caretPos = tempRange.text.length;

    }

  }

  return caretPos;

}


#caretposition {

  font-weight: bold;

}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="content@R_517_2419@" contenteditable="true">Click me and move cursor with keys or mouse</div>

<div id="caretposition">0</div>

<script>

  var update = function() {

    $('#caretposition').html(getcaretposition(this));

  };

  $('#content@R_517_2419@').on("mousedown mouseup keydown keyup", update);

</script>
其他 2022/1/1 18:14:05 有492人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶