Получение xpath выделенного текста в браузере - PullRequest
1 голос
/ 14 сентября 2009

Я хочу получить xpath выбранного в данный момент текста в браузере. Используя JavaScript, я смог получить выделенный текст, но не смог получить xpath.

Я могу найти xpath вручную с помощью Firebug, но я хочу сделать это программно. Возможно ли это сделать?

[EDIT] Хорошо, нашел указатель на решение в этой теме . Изменил код из этой темы, чтобы он соответствовал моим потребностям.

Ответы [ 2 ]

1 голос
/ 14 сентября 2009

Что, если выделение охватывает несколько элементов DOM, каким будет путь?

Я не думаю, что вы можете получить выбранный элемент DOM из getSelection () (или document.selected).

Вы можете попытаться настроить обработчики событий для всего документа для mousedown и mouseup. В mousedown вы сохраняете элемент под указателем, а при наведении мыши проверяете, есть ли выделение.

Следующим шагом будет создание пути к этому элементу. Это тоже довольно хитро .

0 голосов
/ 14 сентября 2009

С макушки головы, но, перебирая всех предков с помощью XSL, вы, вероятно, сможете собрать XPath.

for each ancestor::* { newXPath = concat (local-name(.), [current_node_postion], previousGeneratedXPath)}

Пройдите через каждого предка и соберите полный XPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...