我有 contentEditable 元素(可以是 p、div、...),我想在其中获得插入符号(光标)位置。我通常可以用这段代码实现它:
var position = window.getSelection().getRangeAt(0).startOffset;
当元素仅包含文本时,这可以正常工作。但是当元素包含一些 HTML 格式时,返回的位置是相对于包含的 HTML 元素中插入符号的位置。
让我们假设 contentEditable 元素的内容是这样的:
AB<b>CD</b>EF
如果 caret 在 inside <b></b>
,比方说在 C 和 D 之间,上面代码的返回位置是 1 而不是 3(从 contentEditable 元素的内容开始计算)
任何人都可以提出解决方案吗?