【问题标题】:Update editor content immediately before save in CKEditor plug-in在 CKEditor 插件中保存之前立即更新编辑器内容
【发布时间】:2010-02-16 11:13:51
【问题描述】:

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

【问题讨论】:

  • 你在使用什么save 事件/函数? “保存”按钮?
  • 是的。该插件将由已经设置了 CKEditor 的站点所有者使用,但他们认为合适,所以我希望我的插件尽可能保持干净,这意味着尽可能不更换标准的保存按钮。我查看了源代码,我最好的选择似乎是在包含编辑器的表单中添加一个 submit 事件处理程序,但这很难说是干净的。

标签: javascript ckeditor


【解决方案1】:

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

我已提交 http://dev.fckeditor.net/ticket/5254 以重新创建之前的活动

【讨论】:

  • 结合为表单的提交事件创建我自己的处理程序?
  • 这将是一个替代解决方案。事实上,这是我目前会选择的,因为它可以更容易正确处理,直到 CKEditor 生成适当的事件(我真的不知道你想做什么,所以我猜它必须是复杂的东西,只有在更新文本区域后才能完成)
  • 我的插件允许用户将存储在不同服务器上的内容嵌入到主要的 HTML 内容中。这些在编辑器内容中表示为占位符图像,以防止它们在 CKEditor 中被编辑。在编辑器保存之前,我想用它们代表的 HTML 内容替换这些占位符图像,当编辑器加载时,我想将特殊的 HTML 转换为占位符(我可以用现有事件来做)。也许我应该采取另一种方法?
  • 是的,在这种情况下,您应该以与处理锚点或对象标签类似的方式添加处理:如果他们按下源按钮,您还希望显示 HTML(但我猜您可能已经删除了该按钮,所以这对您来说不是问题)。不幸的是,我现在不记得有关如何进行该处理的好示例(FCKeditor 有一个这样的示例)
  • 谢谢,您的帮助很大。实际上我可能不希望它在源模式下可编辑,但我似乎记得在 CKEditor 中看到切换模式的事件,所以应该没问题。
【解决方案2】:

由于上面的链接并没有真正解决替代 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多