来自https://docs.ckeditor.com/ckeditor4/docs/#!/api/CKEDITOR.editor-event-change
如果不经常触发更改事件很重要,则应比较事件侦听器中的上一个和当前编辑器内容。不建议在每次更改活动时都这样做。
我不明白以上......可能有拼写错误吗?
是否试图在每次更改事件上发出checkDirty之类的电话会导致效果不佳?
使用间隔计时器是一种限制checkDirty
调用次数的好方法。
例如,除非从上次调用中至少传递了1秒,否则不要调用checkDirty?
我使用的用例是根据与上次保存状态不同的编辑器内容启用或禁用保存按钮。
答案 0 :(得分:1)
我通过始终启用保存按钮来解决这种情况:
1)每次用户按下保存按钮时,我都会提示他已保存内容并清除脏标志:
CKEDITOR.instances.editor1.resetDirty();
2)我注册了一个onbeforeunload
事件处理程序,提醒他是否试图退出有未保存数据的网页:
window.onbeforeunload = function() {
if (CKEDITOR.instances.editor1.checkDirty()) {
return 'You will lose the changes made in the editor if you don't save them.';
}
}