Как получить координаты конца выделенного текста с помощью JavaScript? - PullRequest
7 голосов
/ 22 сентября 2010

Моя проблема похожа на это , но мне нужен способ получить координаты правой стороны выделения с помощью Javascript в Firefox.Я сделал небольшой пример, чтобы показать, что я имею в виду:

alt text

Код, полученный из другого поста, следующий:

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);

Это дает мнекоординаты начала выделения.Есть ли способ получить координаты конца выделения?

Ответы [ 2 ]

9 голосов
/ 22 сентября 2010

Да.Этот бит довольно прост: вам просто нужно вызвать 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);
0 голосов
/ 22 сентября 2010
var r = range.cloneRange();
r.collapse(false); // collapses range clone to end of original range
r.insertNode(dummy);
// document.getBoxObjectFor(dummy), etc.
...