LINUX.ORG.RU

Изменить выделенный текст

 , ,


0

1

Сабж. Хочу, чтобы юзерскрипт по нажатию некоторой комбинации клавиш менял текст, который в данный момент выделен. Возможно ли это?

// Можно и в вебдев перенести

Перемещено leave из development

★★★★★

возможно. На событие выделения запоминаешь выделенный текст, а на событие сочетания вешаешь оборачивание этого запомненного текста спаном с соответствующим стилем. А лучше каждое отдельное слово оборачивать, чтобы не перекрывать теги. Если хочешь, за штуку напишу готовую реализацию

filequest
()

а если менять содержимое выделенной области — то же самое, только реплейсом, соответственно.

filequest
()

Уже нагуглил

buddhist ★★★★★
() автор топика
Ответ на: комментарий от filequest

Не самый лучший способ. Например, возникнут проблемы, если какие-то из элементов внутри element сохранены в жс или на них были навешены какие-то листенеры событий, и т.д. — всё продолбается.

Не надо использовать innerHTML лишний раз.

ChALkeR ★★★★★
()
Ответ на: комментарий от ChALkeR

Правильно использовать nodeValue (или textContent, что одно и то же для текстовых нод).

ChALkeR ★★★★★
()
Ответ на: комментарий от ChALkeR

тут без конкретного случая бесполезно говорить. В большинстве случаев, это лучшее решение, все можно учесть, но раз ТС собрался менять содержимое, значит это его не волнует, а свистелки и перделки используют просто потому, что сейчас кругом одни «программисты» жеквери.

filequest
()
Ответ на: комментарий от ChALkeR

Если у тебя какое то слово внутри выделенного блока, которое подлежит замене, то какая нахрен разница, что на нем там раньше висело?

filequest
()
Ответ на: комментарий от filequest

Ты правда не понимаешь или притворяешься?

Пример страницы:

<div>abc def xxx<a href="">foo</a><span>bar</span></div>
И в онлоуде на все ссылки (или не на все, а на часть) навешивается какой-нибудь обработчик. А ссылка на span была сохранена в каком-нибудь списочке.

Теперь ты выделил def, заменил на fed и переприсвоил innerHTML для дива. Поздравляю, ты сломал все евенты для того, что внутри дива! И ссылку на span заодно.

ChALkeR ★★★★★
()
Ответ на: комментарий от ChALkeR

ты просто не понимаешь глубины мысли анонiмуса

anonymous
()

Да. Кури ман по getSelection() и беспощадно мочи мудозвонов, советующих что-либо другое.

border-radius
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.