自 CKEditor5 v11.0.0 起(自 2018 年 7 月 21 日起)
您可能需要的是Document#change:data
编辑文档触发的事件。
editor.model.document.on( 'change:data', () => {
console.log( 'The data has changed!' );
} );
当文档以在编辑器数据中“可见”的方式更改时,将触发此事件。还有一组更改,例如选择位置更改,标记更改,这些更改不会影响editor.getData()
. 要收听所有这些更改,您可以使用更广泛的Document#change
事件:
editor.model.document.on( 'change', () => {
console.log( 'The Document has changed!' );
} );
CKEditor5 v11.0.0 之前
您可能需要的是change
编辑文档触发的事件。
editor.model.document.on( 'change', () => {
console.log( 'The Document has changed!' );
} );
正如该事件的文档所述:
在执行每个enqueueChange()
块或最外层change()
块并且在该块执行期间更改文档后触发。
本次活动将涵盖的变化包括:
如果您想收到有关所有这些更改的通知,那么只需像这样收听此事件:
model.document.on( 'change', () => {
console.log( 'The Document has changed!' );
} );
但是,如果您只想收到有关结构更改的通知,请检查差异是否包含任何更改:
model.document.on( 'change', () => {
if ( model.document.differ.getChanges().length > 0 ) {
console.log( 'The Document has changed!' );
}
} );
最后一个代码片段在实现自动保存等功能时很有用。