Javascript 如何获取给定图形点之间的文本?

Javascript 如何获取给定图形点之间的文本?,javascript,Javascript,有没有办法使用Javascript获取位于当前页面上两个给定图形点之间的文本 比如说,它被赋予了两点p1=(x1,y1)和p2=(x2,y2)。 如何获取当前HTML/网页上介于p1和p2之间的文本 我的要求是:当我们在页面上向下移动鼠标并移动鼠标时,它会选择底层文本。我想选择并获取文本,不需要移动鼠标,只需传递两个点 换句话说,我想用两点来伪造getSelection()。这将很困难。您可以从学习document.element frompoint和document.createRange1开

有没有办法使用Javascript获取位于当前页面上两个给定图形点之间的文本

比如说,它被赋予了两点
p1=(x1,y1)
p2=(x2,y2)
。 如何获取当前HTML/网页上介于
p1
p2
之间的文本

我的要求是:当我们在页面上向下移动鼠标并移动鼠标时,它会选择底层文本。我想选择并获取文本,不需要移动鼠标,只需传递两个点


换句话说,我想用两点来伪造
getSelection()

这将很困难。您可以从学习
document.element frompoint
document.createRange
1开始。以下是基本选择的样子:

function selectNode(node) {  
    var selection, range; 
    if (document.createRange
     && document.defaultView
     && window.getSelection) {
        selection = window.getSelection();
        range = document.createRange();
        range.selectNode(node);
        selection.removeAllRanges();
        selection.addRange(range);
    } else if (document.body 
            && document.body.createTextRange) {
        range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    }
}
2.这里有一个

3.以下是我的做法

  • 鼠标在哪里(在哪个元素上)
  • 字体大小(计算样式)是多少
  • 其中是鼠标(在元素中的偏移)
  • 将起点转换为字符号
  • 将端点转换为字符号
  • 在开始和结束之间选择文本
4.有关自定义选择的详细信息,请访问


我希望你有一个坚实的起点。

我认为我不能对document.element frompoint和document.createRange做太多(我的要求)。因为,为了创建范围元素,我需要从选择开始的确切单词/字母。但是document.elementFromPoint返回的元素名为“body”、“p”或“text”。谢谢您的回复,但是选项1没有回答我的问题。它只是给出所选的文本,只有当我使用鼠标选择一些文本时。选项2也没有多大帮助,它还解释了选项1中所解释的相同内容。选项3:我可以使用event.target找出鼠标在哪个元素上。我还可以找出字体大小。但是我如何才能找到“元素中的偏移量”?您可以将鼠标位置与元素的边(getBoundingClientRect)进行比较。你说你得了两分,对吗?像左上角、右下角之类的东西。现在字体大小的选择变成了一个网格,每个单元格都是一个字符。对于可变宽度字体,这不会失败吗?是的,因为不同的字母具有不同的像素大小(说“i”占最小宽度,说“Q”占更多像素宽度),它可能无法正常工作。也有可能在同一个元素(比如p段)中,某些文本有一种字体大小,而其余的则有不同的字体大小。@ganapati我想JavaScript是您的要求的缩写。如果elementFromPoint是将屏幕上的点与DOM元素关联起来的元素,那么您就不能用它做很多事情。你最好尝试为FireFox生成一个插件,并坚持下去