Как в CKeditor перехватить событие Save ?

программирование php jQuery post ckeditor

Создаю отдельную кнопку вне редактора и по событию onclick отправляю данные textarea на обработку php-скриптом через $.post. Это работает, но не очень удобно (и криво отображается). Вопрос: а как перехватить нажатие на кнопку Save на панели, чтобы страница не перегружалась, также как и при $.post ?

Примечание:
dyn, большое Вам благодарственное спасибо. Пришлось, конечно, помучится при добавлении плагина, и от ru_quadrata не полная, потому как мало что объясняет и долго не работала у меня функция в dialogs/moiplugin.js, точнее работала но висла страшно пока я не нашел в сети как добавлять функцию выполнения по нажатию на кнопку. А точнее вот эту конструкцию :
var newCmd =
{
exec : function(editor){
$.post(
'test.php',{
value:editor.getData()
},
function(data){
if (data=='1'){alert('Успешно сохранено');}else{alert('Возникла ошибка. Не сохранено');};
return true;
}
);
}
};

CKEDITOR.plugins.add(pluginName, {
init : function(editor) {
command = editor.addCommand(pluginName, newCmd);
// и так далее
Ответы:
При нажатии на кнопку Save на панели CKEditor отправляет форму в которой он находится при помощи метода submit(). К сожалению этот метод не генерирует событие onSubmit для формы и отловить момент отправки формы не удается. Есть два выхода из этой ситуации:
Первый - добавить в форму кнопку 'submit' и обязательно дать ей имя name='submit' . Кнопку можно сделать невидимой. В этом случае CKEditor не сможет отправить форму через form.submit() и вынужден будет это сделать через form.submit.click(). Вам остается назначить обработчик события onClick для кнопки submit или onSubmit для формы и возвращать  return false;
Второй - добавить в CKEditor собственный плагин, например mySave, и в нем уже делать необходимые действия. Плагин можно сделать на основе стандартного Save, который можно найти в папке _source. Далее вы добавляете в config.js загрузку вашего плагина и добавляете Вашу кнопку на панель редактора(можно взамен стандартной). Как добавить плагин можно посмотреть http://community.livejournal.com/ru_quadrata/1458.html


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.