如何在给定鼠标(或文档)位置的DOM节点内获取DOMRange样式的偏移量?

时间:2012-02-04 03:10:14

标签: javascript dom

我知道如何确定哪些DOM节点与绝对位置相交。但是说这是一个文本节点。如何确定与该位置对应的文本节点内的偏移量?我想构建一个从已知位置到该位置的DOMRange。

1 个答案:

答案 0 :(得分:1)

第一步是找到与该位置相交的所有Elements。您应该使用Element.getBoundingClientRect方法执行此操作。然后,您可以轻松获取位于Text内的所有Element个节点。困难的部分是找出那些Text节点内的文本在这些边界内。您可以从Element.getClientRects开始,以获取Element内的文本行。这是一个great example

然后,您需要构建一个Range对象,并相应地更改startOffsetendOffset。您也可以在getClientRects对象上使用Range方法。