使用jQuery插件的Ajax形式的TinyMCE编辑器

时间:2010-12-14 11:48:57

标签: javascript ajax tinymce

我有ajax表单(http://jquery.malsup.com/form/),我使用jQuery插件来安装我的TinyMCE编辑器。但是我无法在ajax请求中获得textarea内容。这是因为它在TinyMCE编辑器iframe中。我尝试了谷歌的几个教程,但都没能为我工作。编辑器显示,但是当我发送ajax请求时,它无法获得编辑的textarea内容。

以下是我安装TinyMCE编辑器的方法,但失败了

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

2 个答案:

答案 0 :(得分:4)

onChange事件充其量只是“iffy”。我最近通过一个我正在进行的项目来完成这个项目,并且必须将焦点和焦点绑定在一起。模糊事件......它不漂亮。在我的设置处理程序中,我做了以下操作我删除了特定于我的项目的代码,并在哪里进行保存评论。

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 */ });
});

在旁注中,我注意到您正在使用triggerSave调用编辑器管理器(tinyMCE)(true,true)。我在3.3.9.2 API中没有看到,所以我不知道在那里尝试做什么。在上面的代码中,正在传递编辑器(e)的句柄,并且可以调用方法e.save()来执行保存并将其存储在由tinyMCE修饰的textarea字段中。

希望有所帮助。

答案 1 :(得分:1)

由于Dave G已经声明API链接已经过时(我想知道triggerSave的调用)。

请尝试

tinyMCE.triggerSave();