Кнопка / команда TinyMCE Custom Link (с помощью jQuery) - PullRequest
1 голос
/ 11 февраля 2011

У меня есть редактор TinyMCE со скрытой панелью инструментов по умолчанию, и я создал свой собственный, чтобы заменить его (упрощенный с предварительными просмотрами CSS в стиле office2007).

У меня проблема с созданием ссылки с помощью кода (я загружаю свое собственное окно jQuery UI со списком страниц, сгенерированных cms, это возвращает URL моего кода).

Как я делаю это следующим образом:

Добавление следующего в конфигурационную конфигурацию TinyMCE:

execcommand_callback : 'NEWCMS.editor.util.override'

Таким образом, любая выполненная команда получаетвыполнить эту функцию, прежде чем делать поведение по умолчанию.

В этой функции я проверяю, является ли это событием 'mceLink' (моя пользовательская панель инструментов правильно отправляла команды, поэтому проблема не возникает).Когда я его получаю, я отображаю окно, которое возвращает URL, выбранный пользователем. Именно в этот момент у меня возникла проблема.

Я получаю выбранный узел, используя

var inst = $('#jbcms_editor_textarea').tinymce();
var selectedNode = inst.selection.getNode();

, но он возвращает узел абзаца, как и ожидалось.

Что мне нужно сделать, так это обернуть выделение в <a> теги , чтобы я мог затем использовать этот узел <a>, но не могу найти, как это сделать.Я прошел API, но не могу найти то, что я ищу.Хотя должно быть что-то, так как TinyMCE должен использовать это внутренне.(Я также пытался заглянуть в источник TinyMCE, но он за мной!)

У кого-нибудь есть идеи?

Спасибо

1 Ответ

1 голос
/ 11 февраля 2011

Вы можете получить выбранный контент, обернуть его в a-тег и записать обратно в редактор:

var inst = $('#jbcms_editor_textarea').tinymce();
var content = inst.selection.getContent();
inst.execCommand('insertHTML',false, '<a>'+content+'</a>'); #you may add attributes here too (like href)
...