Как найти определенное слово в блоке текста и выделить его

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Добрый день.
Как найти определенное слово внутри блока текста и выделить его мышкой или клавиатурой или определить его координаты (слова, не блока).

Например, внутри хтмл страницы есть блок текста:
Код:
<p>— Доктор, я не могу больше! Куда бы я ни посмотрел, о чём бы ни подумал, мне везде мерещится одно — шрифты, шрифты, шрифты! — Да не переживайте вы так. Сядьте, успокойтесь, выпейте чаю, съешьте ещё этих мягких французских булок…</p>
Регулярным выражением я нахожу необходимую фразу, например, "выпейте чаю". Необходимо эти два слова выделить мышкой или с помощью Ctrl+Shift+Left и единственная проблема сейчас это нахождение точных координат именно этих слов. В голову приходит только подсчет символов до нужного слова - расчет ширины символа - наведение курсора в это место. Но точно появится проблема с кернингом. В общем - никаких больше идей. Вариант с изменением атрибутов иннерХтмл держу в запасе. Подскажите что делать.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Добрый день.
Как найти определенное слово внутри блока текста и выделить его мышкой или клавиатурой или определить его координаты (слова, не блока).

Например, внутри хтмл страницы есть блок текста:
Код:
<p>— Доктор, я не могу больше! Куда бы я ни посмотрел, о чём бы ни подумал, мне везде мерещится одно — шрифты, шрифты, шрифты! — Да не переживайте вы так. Сядьте, успокойтесь, выпейте чаю, съешьте ещё этих мягких французских булок…</p>
Регулярным выражением я нахожу необходимую фразу, например, "выпейте чаю". Необходимо эти два слова выделить мышкой или с помощью Ctrl+Shift+Left и единственная проблема сейчас это нахождение точных координат именно этих слов. В голову приходит только подсчет символов до нужного слова - расчет ширины символа - наведение курсора в это место. Но точно появится проблема с кернингом. В общем - никаких больше идей. Вариант с изменением атрибутов иннерХтмл держу в запасе. Подскажите что делать.
Вариант с прописыванием тегов <b>выпейте чаю</b>не подходит?
Через Замену в экшене Обработка текста..
 

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
За всеми этими действиями следит злостный js-скрипт. Скажите, он заметит подмену?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
мб как-то найти эту фразу и обернуть своими тегами с уникальными атрибутами, потом xpath запускать.
 

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Тоже думаю об этом, если не найду другого, правильного решения.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Только эксперимент поможет понять это..
а в теории? Я ооочень далек от скриптов. Мог бы или не мог, если бы захотел? (он, js-скрипт)
я так думаю что у него есть стандартный набор событий: онмаус всякие, кейпресы... а тут вроде бы и ничем отловить такое...
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
а в теории? Я ооочень далек от скриптов. Мог бы или не мог, если бы захотел? (он, js-скрипт)
Скрипт может проверить все что угодно, если в него заложили такую функцию, то да, если не заложили, то нет.
На обсуждение больше тратится времени, чем на сам эксперимент.. :-)
Скорее всего - нет, все будет оке..
 

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Результат експеремента будет виден только через месяц+, и то не факт что будут явны причины такого или иного результата.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

daymos

Client
Регистрация
11.11.2009
Сообщения
806
Благодарностей
240
Баллы
43
Так есть, к сожалению.
 
Последнее редактирование:

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)