Javascript 无法捕获编辑器更改事件

Javascript 无法捕获编辑器更改事件,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我看了很多线索,但找不到解决我问题的答案。因此,我定义了一个CKEditor实例,如下所示: var editor = $('#test-editor'); editor.ckeditor(function() {}, { customConfig: '../../assets/js/custom/ckeditor_config.js', allowedContent: true }); 但是,我不知道如何捕捉change事件。这就是我所尝试的: var t = editor.ck

我看了很多线索,但找不到解决我问题的答案。因此,我定义了一个CKEditor实例,如下所示:

var editor = $('#test-editor');

editor.ckeditor(function() {}, {
  customConfig: '../../assets/js/custom/ckeditor_config.js',
  allowedContent: true
}); 
但是,我不知道如何捕捉
change
事件。这就是我所尝试的:

var t = editor.ckeditor(function() {
  this.on('change', function () {
    console.log("test 1"); 
  });
}, {
  customConfig: '../../assets/js/custom/ckeditor_config.js',
  allowedContent: true
}); 

editor.on('change', function() {   
  console.log("test 2"); 
});

t.on('change', function() {   
  console.log("test 3"); 
});  
这三次尝试都以失败告终。我应该补充一点,我不想在一个页面上遍历所有编辑器,我只想用
#test editor
处理组件上呈现的一个特定编辑器。我如何才能做到这一点?

jQuery方法返回一个jQuery对象,该对象在其内部仅公开CKEditor的5个事件。为了使用其他事件,您需要通过访问jQuery对象的属性来使用该对象

因此,您需要使用以下内容:

var myeditor = $('#test-editor').ckeditor({
    customConfig: '../../assets/js/custom/ckeditor_config.js',
    allowedContent: true
});
myeditor.editor.on('change', function(evt) {
    console.log('change detected');
});

顺便说一句,我看到我的编辑器变量包含一个promise对象。但我从来没有深入研究过他们,我不知道如何利用这一事实来捕捉这一事件,谢谢!顺便说一句,也许你对CKEditor还有一点了解。在我看来,格式、字体和大小组合框在工具栏上占据了太多的位置。你知道吗,如果可以将它们更改为图标或自定义字母?我曾经为了好玩而更改过它们的标签,但宽度保持不变(可能是因为它们的物品的宽度)。