Редактор TinyMCE в форме Ajax с использованием плагина jQuery - PullRequest
2 голосов
/ 14 декабря 2010

У меня есть форма ajax (http://jquery.malsup.com/form/), и я использую плагин jQuery для установки редактора TinyMCE. Но я не могу получить содержимое textarea в запросе ajax. Это потому, что оно в редакторе TinyMCE iframe. мне не удалось работать. Редактор появляется, но когда я отправляю ajax-запрос, он не может получить отредактированное текстовое содержимое.

Вот как я устанавливаю редактор TinyMCE, но это не удается

$("textarea.tinymce").tinymce({         
    script_url : tinymceUrl,
    mode : "none",
    theme : "simple",
    setup : function(ed) {
        ed.onChange.add(function() {
            tinyMCE.triggerSave(true,true);
        });
    }
});

Ответы [ 2 ]

4 голосов
/ 14 декабря 2010

Событие onChange в лучшем случае "ненадежное". Я недавно прошел через этот проект, и я должен был связать события фокуса и размытия ... это было не красиво. В моем установочном обработчике я сделал следующее. Я удалил код, специфичный для моего проекта, и добавил комментарий, где можно сохранить данные.

ed.onPostRender.add(function(editor, cm) {
    // Register focus and blur events on BOTH the window and the doc, this way it works properly in
    // IE, Firefox & Chrome
    tinymce.dom.Event.add(editor.getWin(), 'focus', function(e) { });
    tinymce.dom.Event.add(editor.getWin(), 'blur', function(e) { /* save on blur */ });
    tinymce.dom.Event.add(editor.getDoc(), 'focus', function(e) { });
    tinymce.dom.Event.add(editor.getDoc(), 'blur', function(e) { /* save on blur */ });
});

Кстати, я заметил, что вы вызываете менеджер редактора (tinyMCE) с помощью triggerSave (true, true). Я не вижу этого в 3.3.9.2 API, поэтому я не знаю, что там делается. В приведенном выше коде передается дескриптор редактору (e), и метод e.save () может быть вызван для выполнения сохранения и сохранения его в поле textarea, которое оформляется tinyMCE.

Надеюсь, это поможет.

1 голос
/ 14 декабря 2010

Поскольку Дейв Дж уже заявляет, что ссылка API устарела (и мне было интересно узнать о вызове triggerSave).

Пожалуйста, попробуйте

tinyMCE.triggerSave();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...