我有一个可编辑的元素(可以是p、div等),我想在其中获取插入符(光标)位置。我可以使用以下代码来实现:
var position = window.getSelection().getRangeAt(0).startOffset;
如果元素只包含文本,那么这段代码可以很好地工作。但是当元素包含一些HTML格式时,返回的位置将相对于所包含的HTML元素内的插入符位置。
假设contentEditable元素的内容如下:
AB<b>CD</b>EF
如果插入符号在 <b></b>
内部,比如在 C 和 D 之间,使用上述代码返回的位置将是 1,而不是从内容可编辑元素的开头开始计算的 3。
有人能想出解决方案吗?
<p>
都启用contentEditable。现在我正在尝试解决一个问题,当用户仅使用箭头键从一个段落移动到另一个段落时。因此,我需要检测光标在段落中的位置,以便根据按下的箭头键重新定位它。 - Frodik