获取chrome中的文本位置

Get text location in chrome

本文关键字:文本 位置 chrome 获取      更新时间:2023-09-26

我知道我们可以获得页面上元素的位置,但是否可以使用javascript在Firefox或Chrome中检索文本的位置?

从您的问题中不清楚您是否知道这一点,但要在其父框中建立DOM元素的坐标,您需要访问该元素的offsetLeftoffsetTop。要在整个显示页面中查找坐标,需要在offsetParent元素链上累积这些值,直到到达没有父元素的元素为止。代码看起来像这个

function coords(element) {
  var x = 0;
  var y = 0;
  while (element.offsetParent) {
    x += element.offsetLeft;
    y += element.offsetTop;
    element = element.offsetParent;
  }
  return [x,y];
}

现在,要对页面中的任意文本段执行此操作,如果它有父元素,只需找到该元素的位置即可。如果没有,那么编写一些JavaScript将文本封装在<span>中。。。</span>标签-要么通过摆弄innerHTML,要么最好通过使用DOM树,类似于这个

var span = createElement('span');
textNode.parentNode.insertBefore(span, textNode);
span.appendChild(textNode);

之后coords(span)将返回您需要的值。