如何使用javascript获取选定文本结尾的坐标?

如何使用javascript获取选定文本结尾的坐标?,javascript,firefox,getselection,Javascript,Firefox,Getselection,我的问题与类似,但我需要一种在Firefox中使用Javascript获取选择右侧坐标的方法。我举了一个小例子来说明我的意思: 我从另一篇文章中得到的代码如下: var range = window.getSelection().getRangeAt(0); var dummy = document.createElement("span"); range.insertNode(dummy); var box = document.getBoxObjectFor(dummy); var x =

我的问题与类似,但我需要一种在Firefox中使用Javascript获取选择右侧坐标的方法。我举了一个小例子来说明我的意思:

我从另一篇文章中得到的代码如下:

var range = window.getSelection().getRangeAt(0);
var dummy = document.createElement("span");
range.insertNode(dummy);
var box = document.getBoxObjectFor(dummy);
var x = box.x, y = box.y;
dummy.parentNode.removeChild(dummy);

这将为我提供选择开始的坐标。是否有任何方法可以检索所选内容末尾的坐标?

是。这一点非常简单:您只需对从选择中获得的范围调用
collapse(false)
。请注意,
document.getBoxObjectFor()
现已从Mozilla中删除,因此您需要使用伪元素的方法:

var r = range.cloneRange();
r.collapse(false); // collapses range clone to end of original range
r.insertNode(dummy);
// document.getBoxObjectFor(dummy), etc.
var range = window.getSelection().getRangeAt(0);
range.collapse(false);
var dummy = document.createElement("span");
range.insertNode(dummy);
var rect = dummy.getBoundingClientRect();
var x = rect.left, y = rect.top;
dummy.parentNode.removeChild(dummy);

+1是因为快了3秒。我不知道getBoxObjectFor()已经被删除了。我记得这是因为几个月前MooTools坏了,因为它在检测Mozilla时使用了嗅探
getBoxObjectFor()
(据我所知,它从未使用过这种方法)。崩溃(false)正是我要搜索的。非常感谢你。你帮了我很多。