在CKEditor插件中保存之前立即更新编辑器内容

时间:2010-02-16 11:13:51

标签: javascript ckeditor

我正在为CKEditor开发一个插件,需要在保存之前立即对编辑器的内容进行一些更改。在FCKeditor中,我使用OnAfterLinkedFieldUpdate事件实现了这一点,但我还没有找到在CKEditor中执行此操作的等效方法。我原本希望有一个合适的事件可以挂钩,但似乎没有。有谁知道这样做的方法?

2 个答案:

答案 0 :(得分:6)

您可以使用getData事件,但要小心,因为它也会被内部使用。

我已经提交http://dev.fckeditor.net/ticket/5254来重新创建上一个事件

答案 1 :(得分:1)

由于上面的链接实际上没有关于替代OnAfterLinkedFieldUpdate事件的解决方案,我已经写了一篇关于如何绕过它的简短帖子。

以下是表格:

<form id="my_form" action="submit.php" method="post" name="my_form">
   <textarea id="my_text" name="my_text"></textarea>
   <input id="submitForm" type="submit" name="submitForm" value="Submit" />
</form>

JavaScript的:

var formSubmitted = false;
$("#submitForm").live('click', function(event) {
    if (formSubmitted === true) {
        formSubmitted = false;
        return;
    }
    event.preventDefault();
    //put here function to edit content == OnAfterLinkedFieldUpdate
    var editor = CKEDITOR.instances.my_text;
    var html = editor.getData();
    html.replace(searchvalue, newvalue);
    editor.setData(html);
    formSubmitted = true;
    $(this).trigger('click');
});

代码为here