我使用以下代码来获取所选文本的位置:
var text = window.getSelection();
start = text.anchorOffset;
end = text.focusOffset - text.anchorOffset;
我想稍后获取所选文本..为此我正在使用:
document.elementFromPoint(start,end);
但是,它总是返回“null”。
请帮忙:)
最佳答案
elementFromPoint(start,end);
需要 xy 页面坐标,您将在字符串中传递索引。
要获取 xy 页面坐标,您可以使用 Calculating xy-position of text selection 。请注意,坐标是针对视口(viewport)的,因此如果您想要距 HTML 文档顶部的距离,则可能必须考虑滚动。
getSelection().getRangeAt(0).getClientRects()[0];
// ClientRect {}
// bottom: 226
// height: 15
// left: 300.75
// right: 305.078125
// top: 211
宽度:4.328125
要获取包含文本节点的 HTML 元素,您可以使用 Get parent element of a selected text
window.getSelection().anchorNode.parentElement
关于javascript - document.elementFromPoint 对于选定的文本返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039042/