2010-12-14 2 views
2

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

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

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

как вы пытаетесь захватить содержание? – Thariama

+0

http://wiki.moxiecode.com/index.php/TinyMCE:Functions#tinyMCE.triggerSave – newbie

+0

вы указываете на более старую версию API, новый API находится по адресу http://wiki.moxiecode.com/ index.php/TinyMCE: API/tinymce.EditorManager/triggerSave –

ответ

4

Событие 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 (правда, правда). Я не вижу этого в API 3.3.9.2, поэтому я не знаю, что там делается. В вышеприведенном коде передается дескриптор редактора (e), и метод e.save() может быть вызван для выполнения сохранения и сохранения его в поле textarea, которое украшается tinyMCE.

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

+0

Посмотрев ссылку, приведенную выше (http://wiki.moxiecode.com/index.php/TinyMCE:Functions#tinyMCE.triggerSave), это относится к более старый API 2.x, который, вероятно, больше не поддерживается. Посмотрите, может ли код, который я предоставил выше, помочь в том, что вы пытаетесь сделать. –

1

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

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

tinyMCE.triggerSave(); 
Смежные вопросы