Javascript 如何获取给定图形点之间的文本?
有没有办法使用Javascript获取位于当前页面上两个给定图形点之间的文本 比如说,它被赋予了两点Javascript 如何获取给定图形点之间的文本?,javascript,Javascript,有没有办法使用Javascript获取位于当前页面上两个给定图形点之间的文本 比如说,它被赋予了两点p1=(x1,y1)和p2=(x2,y2)。 如何获取当前HTML/网页上介于p1和p2之间的文本 我的要求是:当我们在页面上向下移动鼠标并移动鼠标时,它会选择底层文本。我想选择并获取文本,不需要移动鼠标,只需传递两个点 换句话说,我想用两点来伪造getSelection()。这将很困难。您可以从学习document.element frompoint和document.createRange1开
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.以下是我的做法
- 鼠标在哪里(在哪个元素上)
- 字体大小(计算样式)是多少
- 其中是鼠标(在元素中的偏移)
- 将起点转换为字符号
- 将端点转换为字符号
- 在开始和结束之间选择文本
我希望你有一个坚实的起点。我认为我不能对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生成一个插件,并坚持下去