Я разрабатываю плагин для CKEditor, который должен внести некоторые изменения в содержимое редактора непосредственно перед сохранением. В FCKeditor я добился этого с помощью события OnAfterLinkedFieldUpdate
, но мне пока не удалось найти эквивалентный способ сделать это в CKEditor. Я надеялся, что будет подходящее событие, к которому можно подключиться, но, похоже, его нет. Кто-нибудь знает способ сделать это?
Обновляйте содержимое редактора непосредственно перед сохранением в плагине CKEditor.
Ответы (2)
Вы можете использовать событие getData, но будьте осторожны, потому что оно также запускается для внутреннего использования.
Я зарегистрировал http://dev.fckeditor.net/ticket/5254, чтобы воссоздать предыдущий событие
person
AlfonsoML
schedule
27.02.2010
В сочетании с созданием собственного обработчика события отправки формы?
- person Tim Down; 02.03.2010
Это было бы альтернативным решением. На самом деле, это то, что я бы выбрал на данный момент, потому что с ним может быть проще правильно обращаться, пока CKEditor не сгенерирует правильное событие (я действительно не знаю, что вы хотите сделать, поэтому я предполагаю, что это должно быть что-то сложное, что нужно делать только после обновления текстовой области)
- person AlfonsoML; 02.03.2010
Мой подключаемый модуль позволяет пользователю встраивать элементы содержимого, хранящиеся на другом сервере, в основной HTML-контент. Они представлены в содержимом редактора в виде изображений-заполнителей, чтобы предотвратить их редактирование в CKEditor. Непосредственно перед сохранением редактора я хочу заменить эти изображения-заполнители содержимым HTML, которое они представляют, а когда редактор загружается, я хочу преобразовать специальный HTML в заполнители (что я могу сделать с существующими событиями). Возможно, есть другой подход, который я должен использовать?
- person Tim Down; 04.03.2010
Да, в этом случае вы должны добавить свою обработку аналогично обработке якорей или тегов объектов: вы также захотите показать HTML, если они нажмут кнопку источника (но я предполагаю, что вы могли удалить эту кнопку, так что это для вас это не проблема). К сожалению, я сейчас не помню хорошего примера того, как сделать эту обработку (у FCKeditor был один такой пример)
- person AlfonsoML; 05.03.2010
Спасибо, вы очень помогли. На самом деле я, вероятно, предпочел бы, чтобы он не редактировался в исходном режиме, но я, кажется, помню, что видел события для переключения режимов в CKEditor, так что это не должно быть проблемой.
- person Tim Down; 05.03.2010
Поскольку в приведенной выше ссылке на самом деле нет решения для события substitude OnAfterLinkedFieldUpdate, я написал короткий пост о том, как его обойти.
Вот форма:
<form id="my_form" action="submit.php" method="post" name="my_form">
<textarea id="my_text" name="my_text"></textarea>
<input id="submitForm" type="submit" name="submitForm" value="Submit" />
</form>
JavaScript:
var formSubmitted = false;
$("#submitForm").live('click', function(event) {
if (formSubmitted === true) {
formSubmitted = false;
return;
}
event.preventDefault();
//put here function to edit content == OnAfterLinkedFieldUpdate
var editor = CKEDITOR.instances.my_text;
var html = editor.getData();
html.replace(searchvalue, newvalue);
editor.setData(html);
formSubmitted = true;
$(this).trigger('click');
});
Код находится здесь.
person
Milan
schedule
22.08.2012
save
событие/функцию вы используете? Кнопка сохранения? - person Pekka   schedule 16.02.2010submit
в форму, содержащую редактор, но вряд ли это можно назвать чистым. - person Tim Down   schedule 16.02.2010