无法捕获CKEditor更改事件

时间:2017-04-25 13:20:33

标签: javascript jquery ckeditor

我在SO看了很多线程,但找不到解决我问题的答案。所以,我像这样定义一个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在组件上渲染的特定编辑器。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

jQuery ckeditor()方法返回一个jQuery对象,该对象在其event handling中仅公开了CKEditor的5个事件。要使用其他事件,您需要通过访问jQuery对象的CKEditor.editor属性来使用editor对象。

所以,你需要使用这样的东西:

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