Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在chrome中获取文本位置_Javascript - Fatal编程技术网

Javascript 在chrome中获取文本位置

Javascript 在chrome中获取文本位置,javascript,Javascript,我知道我们可以获取页面上某个元素的位置,但是否可以使用javascript在Firefox或Chrome中检索文本的位置?您的问题不清楚您是否知道这一点,但是要在DOM元素的父框中建立其坐标,需要访问元素的offsetLeft和offsetTop。要在整个显示的页面中查找坐标,需要在offsetParent元素链上累积这些值,直到到达没有父元素的元素为止。代码如下所示 function coords(element) { var x = 0; var y = 0; while (el

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

您的问题不清楚您是否知道这一点,但是要在DOM元素的父框中建立其坐标,需要访问元素的offsetLeft和offsetTop。要在整个显示的页面中查找坐标,需要在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];
}
var span = createElement('span');
textNode.parentNode.insertBefore(span, textNode);
span.appendChild(textNode);
现在,要对页面中的任意文本段执行此操作,如果它有父元素,只需找到该元素的位置即可。如果没有,那么写一些JavaScript将文本包含在。。。标记-通过摆弄innerHTML,或者最好是通过使用DOM树,类似这样

function coords(element) {
  var x = 0;
  var y = 0;
  while (element.offsetParent) {
    x += element.offsetLeft;
    y += element.offsetTop;
    element = element.offsetParent;
  }
  return [x,y];
}
var span = createElement('span');
textNode.parentNode.insertBefore(span, textNode);
span.appendChild(textNode);

之后coordsspan将返回所需的值。

是否希望特定文本节点或所选内容的位置在一个文本节点内或跨越多个文本节点?是的,文本是DOM树中的节点,因此,您所要做的就是递归地遍历对象,查看节点的textContent是否与字符串匹配。挥手等待有人回答;是整个文本节点的坐标位置。就像pageX和pageY,这是一个相当棘手的问题。我确信使用相对较少的代码和递归/jQuery是可能的,但这并不容易。