我的问题类似于this,但我需要一种方法来在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);
这给出了选择开始的坐标。有没有办法检索选择结束的坐标?
答案 0 :(得分:9)
是。这一点很简单:你只需要在从选择中获得的范围上调用collapse(false)
。请注意,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);
答案 1 :(得分:0)
var r = range.cloneRange();
r.collapse(false); // collapses range clone to end of original range
r.insertNode(dummy);
// document.getBoxObjectFor(dummy), etc.