Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2009, 17:03
Интересующийся
Отправить личное сообщение для Smoke Посмотреть профиль Найти все сообщения от Smoke
 
Регистрация: 21.07.2008
Сообщений: 10

Плагин к WYSIWYG
Нужна помощь в написании небольшого Javascript-плагина к
WYSIWYG-редактору. Прошу прощения за длинное изложение.

ПРЕДИСТОРИЯ ЗАДАЧИ:
Имеется система, хранящая HTML-документы, доступные для просмотра и
редактирования многими пользователями. В любом месте документа, любой
пользователь в режиме просмотра может прикрепить личную заметку,
видимую в режиме просмотра только ему. Заметки хранятся в отдельной
таблице с указанием места прикрепления к документу в виде смещения от
начала HTML-текста.
Проблема возникает при редактировании в WYSIWYG-редакторе. Нужно
стараться сохранить привязку заметок к документу, при этом скрывая их
от редактирующего пользователя.

ПРЕДЛАГАЕМОЕ РЕШЕНИЕ:
Редактирование осуществляется в двух режимах: собственно WYSIWYG
(обычно iframe в designMode) и HTML (textarea).

С ПЕРВЫМ режимом сложностей вроде не предвидится и делать предлагается
так: позиции заметок загружаются в javascript массив или объект. До
загрузки в iframe, в точки определенные смещением заметок
помещается специальный невидимый тэг (например <hr class="note" id="note_123" />
со стилем hr.note {display:none}). Если при редактировании тэг
привязки заметки будет удален, (это приходится допускать) то должно сработать
исключение и либо это отмечается в массиве данных, либо мы
восстанавливаем тег в нужном месте. При сохранении или переходе в
HTML режим, начиная с начала текста, тэги последовательно удаляются с
сохранением информации об их смещении от начала.

Самый проблемный ВТОРОЙ режим - редактирование HTML в textarea:
Тут использовать скрытые теги не получится и поэтому придется отслеживать
события в textarea: ввод с клавиатуры, действия мышью, контекстное
меню, горячие клавиши и анализировать, какие произошли изменения с
положением наших контрольных точек, каждый раз пересчитывая их
смещение и обрабатывая их нечаянное удаление. ЭТО САМОЕ СЛОЖНОЕ и
основное. В конце, в эти точки вставляем обратно наши hr тэги и переходим
обратно в WYSIWYG-режим.

Это решение позволит не привязываться к конкретному редактору и
должно работать в любом стандартном WYSIWYG-редакторе.

Требуется кроссбраузерное решение.

Возможно ли это реализовать?
Если Вы действительно можете решить эту задачу, готов обсудить бюджет...

Последний раз редактировалось Smoke, 30.10.2009 в 17:19.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
syncTranslate jQuery плагин Snowcore Ваши сайты и скрипты 0 20.10.2009 19:00
Вопрос по разработке wysiwyg gosha13 Элементы интерфейса 2 26.09.2009 09:52
Потерял красивый плагин навигации картинками eai jQuery 0 09.07.2009 15:18
Плагин для файрфокса - чтение изображений SunnyDay Общие вопросы Javascript 4 28.04.2009 17:30
Пишу плагин к ФФ gnomik Firefox/Mozilla 1 30.01.2009 16:14