我正在使用网站上的构建器构建的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
事件永远不会触发。
可能导致此问题的原因是什么?
答案 0 :(得分:1)
autogrow插件旨在用于框架模式。如果您使用内联模式,它将自动调整,无需任何插件。
答案 1 :(得分:1)
正如AlfonsoML所提到的,自动增长事件对内联编辑器不起作用。
因此,我决定自己进行检测并解雇我自己的事件。一个黑客是apply a short transition and listen on transitionend。但是,较旧的浏览器不支持转换,并且在某些情况下,transitionend
事件与其他问题无关。
我使用的解决方案是每setInterval()
运行500ms
。每500ms
,我们都会使用contenteditable
检查getComputedStyle()
的高度,然后将其与之前存储的高度进行比较。
如果有更改,则会触发事件。
这种方法非常强大且运行良好。