Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имитация execCommand 
:(
    Опции темы
Burrr
Дата 4.4.2007, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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


--------------------
PM MAIL ICQ   Вверх
Burrr
Дата 4.4.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: 10
Всего: 20



Конкретно для strike всё оказалось очень просто:
execCommand("strikethrough")
smile
Но в целом вопром актуален, для любого inline(block)-тега. Если напишу такую функцию - выложу обязательно.

P.S.: http://xpoint.ru/know-how/WYSIWYG/TrueJava...nieSutiProblemy для этих целей не подходит, хотя мысли здесь здравые.


--------------------
PM MAIL ICQ   Вверх
Sardar
Дата 4.4.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Burrr @  4.4.2007,  10:03 Найти цитируемый пост)
хотя мысли здесь здравые

Очень здравые, большинство пользователей не любят ручное форматирование, а любят просто набивать текст и так, что бы "само собой" выглядело всё хорошо.

А вообще муторно это, потребуеться дотошно работать с вёрсткой, при том условии что IE её может отдавать только как текст. Если будут идеи, отпиши попробуем.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.