3

我有以下代码用于检测 ckeditor 表面上的更改。

CKEDITOR.instances['editor1'].on("instanceReady", function(){                    
this.document.on("keyup", function(){
console.log("sth changed");
});
});

我想获得编辑器的内容以计算其中的单词。我怎样才能使用它CKEDITOR.instances

4

5 回答 5

5

检索编辑器内容的唯一正确方法是:

CKEDITOR.instances.yourInstanceName.getData();

您也可以尝试this.on( 'key', function() { ... } );,因为编辑器会触发key事件。

此外,我向您推荐有关编辑器中事件和监控更改的票证。onchange

最后但并非最不重要的一点:已经实施并完成您的工作wordcount插件;)

于 2013-05-15T08:47:31.833 回答
1

插件列表中有一个来自@AlfonsoML 的“onChange”插件:
onChange

它涵盖的不仅仅是“keyUp”。您可以在他的博客上阅读更多内容,其中他描述了捕获的不同事件:
CKEditor 的 onChange 事件

于 2013-05-16T09:47:02.553 回答
1

试试这个:

    CKEDITOR.instances["CKEditor"].on('change', function() { 
        console.log(this.getData());
    });
于 2015-09-15T12:28:34.057 回答
1

对于版本 5,您使用editor.model.document.on('change:data', ...).

非常像:

let someContent = '';

ClassicEditor.create(document.querySelector('#editor')).then(editor => {
  editor.model.document.on('change:data', () => {
    someContent = editor.getData()
  })
}).catch(err => {
  console.log('error loading ckeditor', err);
})

阅读文档:https ://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/basic-api.html#listening-to-changes

于 2019-04-10T12:14:25.827 回答
0

你可以使用这个:

<script>   
    CKEDITOR.replace( 'editor1' );
    CKEDITOR.instances.editor1.on("change", function() {
        $("#content-val").html(this.getData())//show content inside #content-val div
    });
</script>
于 2018-07-16T10:31:24.727 回答