获取所选文本位置

Eca*_*ion 36 html javascript text position selection

目前我在浏览器中获取所选文本:

window.getSelection();
Run Code Online (Sandbox Code Playgroud)

现在我需要在按下自定义键时显示该文本上方的工具提示(注意鼠标不能再在文本上方),所以为了做到这一点,我需要所选文本的绝对位置.

有没有办法做到这一点,可能将文本包装在标签内,然后获得偏移量?它只需要在Chrome中运行,而不是所有浏览器.

Jer*_*naw 54

s = window.getSelection();
Run Code Online (Sandbox Code Playgroud)

返回一个选择.所以试试吧

s = window.getSelection();
oRange = s.getRangeAt(0); //get the text range
oRect = oRange.getBoundingClientRect();
Run Code Online (Sandbox Code Playgroud)

oRect将是客户端(固定)坐标中的边界矩形.

  • 问题仅适用于Chrome.这适用于Chrome和FF. (5认同)
  • `oRange` ...我看到你在那里做了什么:) (4认同)
  • 看看这里,浏览器支持实际上非常好:http://caniuse.com/#feat=getboundingclientrect (3认同)

Tim*_*own 15

最简单的方法是在选择的开头或结尾插入一个临时标记元素并获取其位置.我已经在Stack Overflow上演示了如何执行此操作:如何在用户文本选择旁边定位元素?

  • 如果这是该问题的副本,那么你不应该投票结束吗?不添加指向另一个答案的答案? (3认同)
  • @Liam:我不确定; 问题并不完全相同,但回答这些问题所需的技术是一样的.我不能否认我在回答时处于最大的搜寻阶段. (2认同)