Пиша плъгин за 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">
).
FCKeditor API предоставя ли начин да му се даде команда като „Третирайте всеки елемент, който съответства на селектора „div.dynamicelement“ по следния начин: ...“?
Също така, има ли друг плъгин на FCKeditor, който прави подобно нещо, за което мога да се позова и което може да съм пренебрегнал в моето изследване?
РЕДАКТИРАНЕ: Между другото, вече знам за CKeditor. Използвам FCKeditor по няколко причини: работи за моята CMS, опциите за конфигурация, които използвам, са идеални за моите клиенти (с изключение, очевидно, на нещото със запазеното място) и т.н.