2016-12-28 8 views
1

Я работаю над плагином для TinyMCE. Этот процесс должен быть таким:TinyMCE - Выберите текст, измените текст, обновите редактор и восстановите выбор

1) Пользователь выбирает какой-нибудь текст

2) Он нажимает кнопку на панели инструментов моего пользовательского плагина

3) Пользовательская функция выполняется, что делает пользовательское действие на выделенный текст, например, позволяет сказать, что он окружает выбранный текст с подчеркиванием тегов: <u></u>

4) После выполнения действий, выбранный текст затем вставить обратно в редактор, где был сделан выбор

5) Теперь, независимо от выбранного текста, я беру ВСЕ HTML редактора и изменяю его в соответствии с моими потребностями, например добавление пользовательского атрибута к каждому тегу в HTML

6) Наличие нового HTML-кода я хочу вставить его обратно в редактор

7) Кроме того, выбранный текст должен быть еще выделен в конце процесса

Я борюсь с шагами 4-7.

Мои проблемы разделены на 2 этапа:

A) Я получаю выделенный текст, и я могу изменить его. Проблема в том, что я не знаю, как вернуть его во весь текст редактора. В плагине я:

var newSelectionHTML = ed.selection.getContent(); 

Но как я могу обновить выделенную часть текста редактора с newSelectionHTML

B) Я не знаю, как изменить HTML на целый редактора и установить его в редактор , сохраняя при этом выбор пользователя.

ed.setContent(newHTML) 

Выполнение этого действия отменяет выбор пользователя и перемещает курсор в начало. Как сохранить выбор пользователя во всем процессе (шаги 1-7)?

Заранее спасибо. Асаф

ответ

1

магазин ваш диапазон с помощью клонирования, когда диалог первый открывает

originalRange = jQuery.extend(true, {}, editor.selection.getRng()); 

Затем, когда вы хотите, чтобы вернуться к первоначальному выбору

editor.selection.setRng(originalRange); 

 Смежные вопросы

  • Нет связанных вопросов^_^