代码之家  ›  专栏  ›  技术社区  ›  Tim Down

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

  •  8
  • Tim Down  · 技术社区  · 14 年前

    我正在为ckeditor开发一个插件,它需要在保存之前立即对编辑器的内容进行一些更改。在fckeditor中,我使用 OnAfterLinkedFieldUpdate 但我还没有找到一种在Keckeditor中实现这一点的等效方法。我本来希望会有一个合适的活动,但似乎没有。有人知道怎么做吗?

    2 回复  |  直到 12 年前
        1
  •  6
  •   AlfonsoML    14 年前

    您可以使用getdata事件,但要小心,因为它也是为内部使用而激发的。

    我已经归档了 http://dev.fckeditor.net/ticket/5254 重新创建上一个事件

        2
  •  1
  •   j0k spurrchalifax    12 年前

    由于上面的链接并没有真正的解决方案来替代AfterLinkedFieldUpdate事件,所以我写了一篇关于如何绕过它的简短文章。

    这是表格:

    <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