Я пишу плагин для FCKeditor, который предназначен для вставки заполнителей для динамического контента в HTML.Интерфейс выглядит следующим образом:
В настоящее время плагин вставляет следующий HTML-код:
<div title="Dynamic Element: E-Cards (sidebar)" class="dynamicelement ecards-sidebar"> </div>
Фрагмент Javascript в моем плагине, который выполняет фактическийвставка этих заполнителей такова:
function insertNewDiv() {
var divNode = oEditor.FCK.EditorDocument.createElement('div');
oEditor.FCK.InsertElement(divNode);
oEditor.FCK.Focus();
oEditor.FCK.Events.FireEvent('OnSelectionChange');
return divNode;
}
Чтобы это выглядело хорошо в окне FCKeditor, я применяю немного CSS к окну FCKeditor, включая следующее, которое записывает заголовок там:
.dynamicelement:before {
content: attr(title);
}
В любом случае, кроме стиля, FCKeditor обрабатывает эти элементы div
не иначе, как любой другой элемент div
в своем окне.Это не хорошо для меня.
Мне нужно, чтобы эти заполнители имели следующие характеристики:
- Не допускается вставка содержимого в заполнитель.
- Нажатие должновыберите его в целом.
- Нажатие клавиши удаления, когда она выбрана, должно удалить ее.
- Единственный способ отредактировать ее (кроме удаления) - выбрать ее, а затем нажать кнопку на панели инструментов, чтобы открыть диалоговое окно редактирования..
- Его всегда следует рассматривать как элемент уровня блока
- . Не имеет значения, использует ли вывод HTML пользовательское имя тега или нет (
<dynamicelement>
вместо <div class="dynamicelement">
).
Предоставляет ли API-интерфейс FCKeditor способ дать ему команду, например: "Обработать каждый элемент, соответствующий селектору div.dynamicelement", следующим образом: ... "?
Кроме того, есть ли другой плагин FCKeditor, который делает похожую вещь, на которую я могу сослаться, которую я мог упустить из виду в своем исследовании?
РЕДАКТИРОВАТЬ: Кстати, я уже знаю о CKeditor.Я использую FCKeditor по нескольким причинам: он работает для моей CMS, параметры конфигурации, которые я использую, идеально подходят для моих клиентов (кроме, очевидно, для вещи-заполнителя) и т. Д.