如何使用javascript获取HTML文本节点的位置和大小?

如何使用javascript获取HTML文本节点的位置和大小?,javascript,html,dom,Javascript,Html,Dom,比如说, <div style="width:100px;text-align:center">text</div> 文本 我想得到texttext节点的位置和大小,而不是它的div包装器。有可能吗?在现代浏览器(最近的ish Mozilla、WebKit和Opera)中,您可以使用包含文本节点的 var textNode=document.getElementById(“wombat”).firstChild; var range=document.createR

比如说,

<div style="width:100px;text-align:center">text</div>
文本
我想得到
text
text节点的位置和大小,而不是它的
div
包装器。有可能吗?

在现代浏览器(最近的ish Mozilla、WebKit和Opera)中,您可以使用包含文本节点的

var textNode=document.getElementById(“wombat”).firstChild;
var range=document.createRange();
范围。选择NodeContents(文本节点);
var rects=range.getClientRects();
如果(矩形长度>0){
log(“文本节点rect:,rects[0]);
}

Wombat
您可以获得div位置,然后必须添加任何顶部和左侧的填充和边框。@user125697:
text
是一个节点,而不是元素。这和那个问题不一样。可能有帮助you@Asken:如何获取填充和边框信息?我无法使用Chrome的检查器找到它的填充和边框值。这不是重复的。查找文本节点的位置/尺寸与对元素执行相同操作是不同的问题。此代码是否适用于旧浏览器。如果没有,旧浏览器的解决方案是什么。@Domezchoc:哪些旧浏览器?在IE中有一种解决方案,只要您的文本节点是元素的唯一子元素,它就很容易实现。否则,它仍然是可能的,但更多的工作来创建文本范围。我的意思是,IE,我明白了。首先我需要找到TextRange,然后是getClientRects。thank@user984003:该代码段在iOS 11中的Safari上似乎可以正常工作。