7

我的问题与类似,但我需要一种方法来使用 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);

这给了我选择开始的坐标。有没有办法检索选择结束的坐标?

4

2 回答 2

10

是的。这一点很简单:您只需要调用collapse(false)从选择中获得的 Range。请注意,document.getBoxObjectFor()它现在已从 Mozilla 中删除,因此您需要虚拟元素的getBoundingClientRect()方法:

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);
于 2010-09-22T08:51:17.233 回答
0
var r = range.cloneRange();
r.collapse(false); // collapses range clone to end of original range
r.insertNode(dummy);
// document.getBoxObjectFor(dummy), etc.
于 2010-09-22T08:51:13.060 回答