CKEditor恢复元素/撤消所有更改

时间:2014-05-20 12:59:47

标签: javascript ckeditor

有没有办法恢复原始内容/撤消已成为Inline-CKEditor的元素的所有更改?

3 个答案:

答案 0 :(得分:0)

似乎没有内置函数,例如参见this ticket

有些人建议使用onclick javascript事件按钮来重新加载页面。或者将初始数据保存在编辑器中并使用javascript将内容替换为事件上的内容。 (Here is a thread concerning your request with the mentioned tricks.

答案 1 :(得分:0)

我的解决方案:

在实例化CKEditor后,我将CKEDITOR.editor1.getData()的初始内容保存到自定义变量CKEDITOR.editor1.firstSnapshot。稍后当我想恢复它时,我用CKEDITOR.editor1.setData(CKEDITOR.editor1.firstSnapshot);

写回来

起初我想使用getSnapshot()但是它总是返回true,所以这对我不起作用。

答案 2 :(得分:0)

我想分享一种不同的问题方法。我正在使用内联CKEditor,并且有模糊事件(当用户取消焦点ckeditor时),它提示用于保存内容或回滚更改的选项。

对于回滚的情况 - 我只是把checkDirty() - 函数检查实例是否有变化 - 在while循环中,所以undo在每个true中执行,直到ckeditor恢复到初始状态。

代码将如下所示:

CKEDITOR.instances["editor"].on('blur', function (evt) {
    if (confirm("Do you wish to roll back changes ?")) {
        while (CKEDITOR.instances["editor"].checkDirty())   {
            CKEDITOR.instances["editor"].execCommand('undo');
        }
    } else {
        // do nothing!
    }                        
})