我使用以下代码来获取所选文本的位置:
var text = window.getSelection();
start = text.anchorOffset;
end = text.focusOffset - text.anchorOffset;
我想稍后获取所选文本...因为我正在使用:
document.elementFromPoint(start,end);
但是,它总是返回“null”。
请帮助:)
答案 0 :(得分:1)
elementFromPoint(start,end);
需要xy页面坐标,您在字符串中传递索引。
要获取xy页面坐标,您可以使用Calculating xy-position of text selection。请注意,坐标是针对视口的,因此如果您想要距离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