我的父元素中有一些文本highlighted放在<span>
s中,现在想知道它的哪一部分被选中了。我检索了Selection
对象,但它不包含直接有用的信息。我想获得相对于文本开头的偏移,但它们相对于突出显示<span>
s 内的文本节点,并且不与{{1 }}
假设:
parent.textContent
元素的引用parent
s)和文本节点,但它们是任意嵌套的。Selection.anchorNode
/ Selection.focusNode
Selection.anchorOffset
/ Selection.focusOffset
<span>
位于第一个字符之前。有没有一种方法比天真的“探索具有累积计数的树”技术更有效地假装0
s不存在以便测量<span>
焦点和锚点点?
答案 0 :(得分:2)
我不知道它在性能方面是否更有效,你必须衡量它。就代码行而言,Range API应该使事情变得相当容易。构造从父元素的开头到选择的开始的范围,然后计算其中包含的字符。
毕竟,Selection
主要是范围的集合。