| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Перемещаем выделенный текст |
| Автор: YurkaKursant 22.9.2009, 22:08 |
| Есть такая задача: в textarea есть текст. При выделении любого слова, над ним появляется div с кнопкой. Нажимая на кнопку, при помощи "СелектТекст" надо выделенное слово вставить в текстовое поле <input type="text"/>, вырезая его из textarea. У кого есть идеи, подскажите, пожалуйста. Очень нужно. |
| Автор: Amphiluke 22.9.2009, 23:47 | ||||
Не очень понял, что значит
Вот примерчик...
|
| Автор: YurkaKursant 23.9.2009, 06:02 |
| А как сделать, чтобы при повторном записывании в текстовое поле предыдущая запись не удалялась, а к ней просто дописывалась следующая? |
| Автор: YurkaKursant 23.9.2009, 07:57 |
| Блин, действительно) Ни как не получается параллельно вставлению слова в текстовое поле возводить первую букву в верхний регистр, вообще реально это реализовать? Спасибо! |
| Автор: Amphiluke 23.9.2009, 08:21 | ||
Можно так.
|
| Автор: YurkaKursant 23.9.2009, 08:33 |
| |
| Автор: Amphiluke 23.9.2009, 08:43 |
| Сделать появляющийся div — не проблема. Самая главная проблема — определить клиентские координаты выделенного текста в окне браузера. В IE объект TextRange поддерживает атрибуты offsetLeft и offsetTop, так что там проблема решаема (хоть сейчас). А вот в FF как вытянуть координаты, что-то не вспомню. Надо смотреть https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide. Если желаете могу написать для IE, дальше уж сами «ковыряйтесь» (время дорого). Добавлено через 2 минуты и 27 секунд Кстати, если выделение производится только мышью, то тоже легко можно сделать во всех браузерах — использовать атрибуты объекта Event. |
| Автор: YurkaKursant 23.9.2009, 08:52 |
| Да, выделяем только мышью! Если кроссбраузерность с event реализуема, то это классно) |
| Автор: Amphiluke 23.9.2009, 09:27 | ||
| Хм. Возникли (решаемые) проблемы с Event. Дело в том, что событие onselect не порождает его экземпляр, который можно было бы использовать для заполучения координат. Пришлось дополнительно навешивать «слушатель» события mouseup — ради только заполучения координат... В общем, надоело.
|
| Автор: YurkaKursant 23.9.2009, 11:11 |
| Спасибо большое) |
| Автор: YurkaKursant 24.9.2009, 10:24 | ||
Есть проблема: В разных браузерах положения div при появлении неприятно удивляет (в разных местах отображается). Как сделать так, чтобы появляющийся div был привязан координатам мыши (выше или ниже нее)????
|
| Автор: Amphiluke 24.9.2009, 12:51 |
| Ответил в http://forum.vingrad.ru/index.php?showtopic=274048&view=findpost&p=1976374, поскольку заметил ее первой. |
| Автор: YurkaKursant 25.9.2009, 13:04 | ||||
| В общем подскажите плиз как реализовать чтобы, если мы щелкаем вне этого div'a то он скрывается, а если внутри div'a то с ним ничего не происходит. В общем как сделать отследить евенты щелчка по и вне div'а. Как-нибудь так:
|
| Автор: Amphiluke 25.9.2009, 13:31 | ||
Вот добавьте примерно такое в скрипт
P.S. Возможно, вам придется немного доработать. Проверял только в FF. |
| Автор: YurkaKursant 25.9.2009, 22:18 | ||||
Просто, отлично работает (Opera, NN, FF, Safari, Chrome)!!! А вот в IE не хочет. |
| Автор: Amphiluke 25.9.2009, 23:00 | ||
Угу. Наверное, IE хочет этого:
|
| Автор: YurkaKursant 25.9.2009, 23:37 |
| Точно, именно этого IE и не хватало!!! Все, закрываю тему. Спасибо огромное за помощь, Amphiluke! |
| Автор: yu007 16.10.2009, 00:43 |
| А как сделать, чтобы в одна из div-кнопок не вырезала текст а копировала его? |
| Автор: yu007 22.10.2009, 23:59 |
| Так как сделать копирование одной из кнопок? Помогите, пожалуйста, профи! |