有没有办法恢复原始内容/撤消已成为Inline-CKEditor的元素的所有更改?
答案 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!
}
})