如何确定页面上最后一个选定字符的 x/y 屏幕坐标



我需要在给定的 DIV 元素(而不是文本区域中(内确定 HTML 页面上最后一个选定字符的 x/y 屏幕坐标,以便我可以在它旁边弹出一条消息。如果在StackOverflow上找到类似的东西,这里有一个完整的例子。

不幸的是,该示例将文本左对齐到最后一个选定行,我需要将其放在最后一个选定行的末尾。在选择多行文本时,对所选文本使用 getBoundingClientRect 不起作用,因为当我尝试右对齐弹出窗口时,它将始终位于屏幕的最右侧。

sel.getRangeAt(0).getBoundingClientRect();

有没有办法只使用 JavaScript 来查找最后一个选定字符的 x/y 坐标?

我希望最好的方法是将元素插入 DOM 中,让浏览器担心它在屏幕上的位置(在任何特定时刻(。 javascript选择/范围坐标的公认答案是这样的。

(如果只想影响屏幕的某些部分,则应该能够根据选择范围的节点信息进行筛选。

我担心的另一个问题是,根据用户代理(特别是在可能进行可访问性调整的情况下(,假设选择更改对应于给定的输入事件可能是错误的。 您可能需要查看选择 API,看看它定义的事件是否适合您的目的。

最新更新