![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
Моя цель, аккуратно превратить такую ноду:
<p id="cost">It's first</br> row</p> в такую: <p id="cost"><span>It's first</span></br> row</p> При этом не должно теряться пользовательское выделение (что к сожалению происходит при использовании innerHTML)!!! Это только примерный код, на самом деле с нодами может происходит что-угодно (удаление, замена, добавление), НО количество текста приэтом НЕ МЕНЯЕТСЯ! Теперь код:
В ИЕ всё в порядке, пользовательское выделение (то что он выделил мышью и просто поставил фокус) остается на своем месте, а вот в Гекко и Опере оно теряется ![]() Как это побороть? ![]() P.S.: почему-то не получается запостить в форум "JavaScript", кидаю сюда. Если есть способ, как сохранить пользовательское выделение использую innerHTML - это будет просто замечательно! Это сообщение отредактировал(а) Burrr - 19.10.2006, 16:11 |
|||
|
||||
katka |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 19.7.2004 Репутация: нет Всего: 6 |
</br> это как?
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга |
|||
|
||||
Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
Это нормально ;). <br> не является контейнером, поэтому его можно писать как в виде открывающего тэга - <br> так и в виде закрывающего - </br> Прошу дальше в этой теме это не обсуждать - offtopic. |
|||
|
||||
Nicholas_S |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
Привожу код для Firefox. Код не оптимален, можно чуток подсократить (например использовать метод cloneRange()).
Кстати, в твоем коде у IE выделение теряется если из текста выделен только кусок. Посмотри. -------------------- ...все в мире относительно |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Действительно, выделение в IE имеет расширенные функции, но имеет мелкие недостатки, устранить которые можно через снятие положений границ с последующим их восстановлением по своей логике. Код резко увеличивается, что видно на примере работы с textarea при вставке bb-кодов.
|
|||
|
||||
Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
Nicholas_S, спасибо, +1
Не нашел в мане описание ф-ии addRange, можешь поделиться? И как же всё-таки пофиксить это в Опере, кто-нибудь может кинуть код, который бы работал в ИЕ, Гекко, Опера 9+ ? |
|||
|
||||
Nicholas_S |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
Burrr, посмотри ресурс http://developer.mozilla.org/en/docs/DOM:Selection:addRange.
Вообще на нем много интересного, посещай по мере необходимости. ![]() Добавлено @ 11:44 Burrr, нет проблем, амиго! Всего лишь 1 строку поправить для идентификации Оперы:
-------------------- ...все в мире относительно |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |