document.elementFromPoint为所选文本返回null

时间:2016-01-27 13:44:09

标签: javascript

我使用以下代码来获取所选文本的位置:

var text = window.getSelection(); 
start = text.anchorOffset; 
end = text.focusOffset - text.anchorOffset;

我想稍后获取所选文本...因为我正在使用:

document.elementFromPoint(start,end);

但是,它总是返回“null”。

请帮助:)

1 个答案:

答案 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