找到当前放置在textarea / contenteditable中的插入点的位置

时间:2017-09-26 06:54:09

标签: javascript jquery html contenteditable

我目前正在尝试创建一个动态文本区域,虽然我面临一些问题,我必须阻止事件自我实现,我得出结论,我需要找出其中插入点位于当前textarea或contenteditable分隔符中。

我在jQuery中使用了事件keydownkeyup但是在分隔符上点击时它们没有记录,我不知道在{{{{{ 1}}找到我想要的东西。

例如,如果我在一个空的textarea并单击textarea,它将返回event,因为它在开头 - 如果我要写文本它将返回数字,因为更多的字符是插入textarea。

1 个答案:

答案 0 :(得分:1)

您可以使用textarea中的selectionStartselectionEnd属性。对于contenteditable元素,您可以使用window.getSelection()

$('#text1').on('keyup click', function() {
  console.log('Selection start :', $(this).prop('selectionStart'));
  console.log('Selection end :', $(this).prop('selectionEnd'));
});

$('#text2').on('keyup click', function() {
  console.log(window.getSelection().getRangeAt(0).startOffset);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text1"></textarea>
<div id="text2" contenteditable>some text</div>

相关问题