Это метод, который я использую, плагины не требуются:
Это просто и надежно и использует встроенную кнопку сохранения CKEditors.
Добавьте невидимую кнопку отправки (display: none) в ту же форму, где находится CKEditor, и установите для ее идентификатора и имени значение «submit», тогда как onclick входа, так и onsubmit формы будут выполнены, когда стандарт CKEditor нажата кнопка сохранения. вы можете подключить ваши обработчики событий встроенными или с помощью jquery.bind () или любым другим способом. Затем добавьте функцию, прикрепленную к событию onsubmit формы, чтобы сериализовать форму и отправьте ее по адресу, указанному в атрибуте action. Просто верните False из обработчика событий, чтобы убедиться, что форма не публикуется. Теперь любой код или кнопка (включая кнопку сохранения ckeditor), которая отправляет форму, запустит ваш обработчик. Никаких плагинов CKeditor или конфигурации CKeditor не требуется.
Вот упрощенный пример (предполагает JQuery).
<form id="myform" name="myform" action="" method="post" onsubmit="alert('form.onsubmit()');return false;">
<input type="submit" id="submit" name="submit" style="display:none" onclick="SaveText(this);"/>
<textarea id="ckeditor1"></textarea>
</form>
<script>
function SaveText (eventargs){
var form = $(eventargs).closest("form");
var data = form.serialize();
var url = form.attr('action');
$.post(url, data);
return false;
}
</script>
Более реалистичный подход может использовать JQuery.Bind (), и скрипт будет во внешнем файле JS и т. Д., Но конечный результат тот же. Это работает, потому что ввод скрывает функцию отправки формы, поэтому любой вызов form.submit () вместо этого вызывает функцию onclick () кнопки отправки (поведение std для всех браузеров). Поскольку это кнопка «submit», она вызывает событие onsubmit формы, которое обычно не происходит, если вы вызываете form.submit () напрямую. Таким образом, вы получаете надежный слабо связанный перехват события сохранения без плагинов или использования CKEditor API. Вы также можете использовать его не только для сохранения AJAX, но и для любой обработки перед сохранением, которую вам нужно сделать.