CKEditor的自动增长事件未触发

时间:2014-05-31 08:33:38

标签: ckeditor

我正在使用网站上的构建器构建的CKEditor 4.4.1以及内联模式的自动增长插件。

CKEDITOR.disableAutoInline设置为true。 CKEDITOR.config.autoGrow_onStartup也设置为true。

然后我继续内联contenteditable,如下所示:

var editor = Y.one('...'); //Get the contenteditable using YUI.

var ckEditor = CKEDITOR.inline(editor.getDOMNode());

ckEditor.on('instanceReady', function(e){
  console.log(e);
}, this);

ckEditor.on('autogrow', function(e){
  console.log(e);
});

我可以确认自动增长是否正常工作,内联的contenteditable在需要时扩展。 instanceReady事件也会触发。

但是,当{conbletedable'扩展或缩小时,autogrow事件永远不会触发。

可能导致此问题的原因是什么?

2 个答案:

答案 0 :(得分:1)

autogrow插件旨在用于框架模式。如果您使用内联模式,它将自动调整,无需任何插件。

答案 1 :(得分:1)

正如AlfonsoML所提到的,自动增长事件对内联编辑器不起作用。

因此,我决定自己进行检测并解雇我自己的事件。一个黑客是apply a short transition and listen on transitionend。但是,较旧的浏览器不支持转换,并且在某些情况下,transitionend事件与其他问题无关。

我使用的解决方案是每setInterval()运行500ms。每500ms,我们都会使用contenteditable检查getComputedStyle()的高度,然后将其与之前存储的高度进行比较。

如果有更改,则会触发事件。

这种方法非常强大且运行良好。