Как получить координаты конца выделенного текста с помощью javascript?

моя проблема похожа на этой, но мне нужен способ получить координаты правой части выбора с помощью 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);

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

1 ответов


да. Это довольно просто: вам просто нужно позвонить 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);