CKEditor 5 更改事件并不总是触发
CKEditor 5 change event not always firing
我正在使用 CKeditor v11.1.1 和 CountableJS 进行字数统计。
目前,我这样附加可数:
editor.model.document.on( 'change:data', ( evt, data ) => { //call countableJS wordcount });
这适用于正常的打字和退格,但当我 CTRL+A -> Delete
或 CTRL+V
粘贴一些文本时失败。该事件不会触发,因此在我再次开始输入之前字数不会更新。
文档明确指出“[change:data] 因影响编辑器数据的更改而被触发”,但情况似乎并非总是如此。我也试过只听 change
但表现类似。
我是不是误会了什么?还有其他活动我可以听吗?
我刚刚检查过它,当我按 Ctrl+Delete 或 时它对我来说工作正常Ctrl+V。您可以在 https://jsfiddle.net/auxe23b7/1/:
上进行测试
ClassicEditor
.create( document.querySelector( '#editor' ) )
.then( editor => {
console.log( editor );
editor.model.document.on( 'change:data', ( evt, data ) => {
console.log( data );
} );
} )
.catch( error => {
console.error( error );
} );
事实上,如果不触发此事件,编辑器将无法工作。此事件开始将模型中的更改转换为视图。如果某些更改(删除内容、粘贴一些内容)没有转换,它们将不会出现在视图中。
所以,要么你的代码中有错误,要么......或者我不知道:)
我正在使用 CKeditor v11.1.1 和 CountableJS 进行字数统计。
目前,我这样附加可数:
editor.model.document.on( 'change:data', ( evt, data ) => { //call countableJS wordcount });
这适用于正常的打字和退格,但当我 CTRL+A -> Delete
或 CTRL+V
粘贴一些文本时失败。该事件不会触发,因此在我再次开始输入之前字数不会更新。
文档明确指出“[change:data] 因影响编辑器数据的更改而被触发”,但情况似乎并非总是如此。我也试过只听 change
但表现类似。
我是不是误会了什么?还有其他活动我可以听吗?
我刚刚检查过它,当我按 Ctrl+Delete 或 时它对我来说工作正常Ctrl+V。您可以在 https://jsfiddle.net/auxe23b7/1/:
上进行测试ClassicEditor
.create( document.querySelector( '#editor' ) )
.then( editor => {
console.log( editor );
editor.model.document.on( 'change:data', ( evt, data ) => {
console.log( data );
} );
} )
.catch( error => {
console.error( error );
} );
事实上,如果不触发此事件,编辑器将无法工作。此事件开始将模型中的更改转换为视图。如果某些更改(删除内容、粘贴一些内容)没有转换,它们将不会出现在视图中。
所以,要么你的代码中有错误,要么......或者我不知道:)