![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
При написании WYSIWYG-а очень удобно использовать метод execCommand объекта document, который работает с текущим выделением. Например, document.execCommand("bold"); выставит жирность. А если выделение уже было жирным - то уберет.
Как написать имитацию execCommand, чтобы можно было ставить любое другое форматирование, например зачеркивание (<s>, <strike>)? Условия: 1) Если длина выделения равна нулю (курсор), то после нажатия на кнопку дальнейший ввод шел зачеркнутыми символами. Повторное нажатие приводит к отмене. 2) Если длина выделения >0 , то выделенный текст становитcя зачеркнутым и при этом ВЫДЕЛЕНИЕ НЕ ТЕРЯЕТСЯ! Повторный вызов снимает форматирование. 3) Если у выделенного участка уже есть выделени (жирность, курсив), то оно не должно уничтожаться или как-то конфликтовать с зачеркиванием. Пример: <b>123</b>456<i>789</i> Допустим мы выделили 34567 и вызвали функцию, вызывающую зачеркивание. Должно вернуться: <b>12<s>3</s></b><s>456</s><i><s>7</s>89</i> И все это в интерфейсе, аналогичном execCommand, чтобы не терялось выделение. Видел такую реализацию в визуальном редакторе ЖЖ, но добраться до их кода сложно. ??? Это сообщение отредактировал(а) Burrr - 4.4.2007, 10:49 |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 10 Всего: 20 |
Конкретно для strike всё оказалось очень просто:
execCommand("strikethrough") Но в целом вопром актуален, для любого inline(block)-тега. Если напишу такую функцию - выложу обязательно. P.S.: http://xpoint.ru/know-how/WYSIWYG/TrueJava...nieSutiProblemy для этих целей не подходит, хотя мысли здесь здравые. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Очень здравые, большинство пользователей не любят ручное форматирование, а любят просто набивать текст и так, что бы "само собой" выглядело всё хорошо. А вообще муторно это, потребуеться дотошно работать с вёрсткой, при том условии что IE её может отдавать только как текст. Если будут идеи, отпиши попробуем. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |