ckeditor内容的事件已更改

时间:2015-01-22 10:57:31

标签: jquery ckeditor

如果可能,我们如何才能更改ckeditor的内容?例如,当页面打开时,已经将一些文本插入到ckeditor的内容aka textarea中。之后我输入更多内容或删除部分文字。是否有一些事件被解雇我可以在更改文本时更改变量?

我对普通的textareas有这个:

$("input,textarea").on("input", function () {
    booleanvar= true;
});

在某个地方看到了一个可能的解决方案:

$('.ckeditor').ckeditorGet().on('key', function (e) {
    //some code
});

尝试过,但没有奏效。是的,我知道我的ckeditor&textarea有" ckeditor"作为它的阶级,这不是它不起作用的原因。

那么我可以用这些例子来获取ckeditor的某些textchanged事件吗?

5 个答案:

答案 0 :(得分:27)

是的,即使你可以听也很方便change。这里的文档:http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change

使用它就像这样(将editor1更改为编辑器实例):

CKEDITOR.instances.editor1.on('change', function() { 
    console.log("TEST");
});

答案 1 :(得分:3)

对于 CKEDITOR 的更改,对我很有帮助。

<textarea id="ckeditor_textarea " name="ckeditor_textarea ">Add Yore Data</textarea>

<script type="text/javascript">
var editor = CKEDITOR.replace( 'ckeditor_textarea ', {});
// editor is object of your CKEDITOR
editor.on('change',function(){
    console.log("test");
});
</script>

答案 2 :(得分:2)

希望这可能对其他像我这样的人有所帮助。如果您使用的是CKEditor5,可以尝试以下方法:

ClassicEditor.create(document.querySelector('#editor'))
.then(editor => {
    editor.model.document.on('change:data', (evt, data) => {
        console.log(editor.getData());
    });
})
.catch(error => {
    console.error('Editor initialization error.', error);
});

答案 3 :(得分:0)

如果一页中有很多ckeditor(版本4),则可以使用以下代码:

CKEDITOR.on('instanceCreated', function(event) {
 var editor = event.editor,
 element = editor.element;
 editor.on('change', function() {
 console.log(element.getId());
 });
 });

答案 4 :(得分:0)

CKEditor4的简单jQuery事件绑定

$.fn.onDataChange = function (func) {
    var func = func || function () { };
    CKEDITOR.instances[$(this).attr('id')].on('change', function () {
        func();
    });
}