有时候需要再富文本框渲染完成后做一些处理,这个时候就需要ckeditor加载完成事件了。
可以在渲染的方法后注册instanceReady事件方法。注意这里如果有多个富文本框,事件方法只需要注册一次就可以了,所有富文本框加载后都会去执行这个方法。
$(function (){
CKEDITOR.replace('oaNoticeTextarea',{
height:380,
enterMode:CKEDITOR.ENTER_P,
toolbar: toolbar,
extraPlugins: 'textindent'
});
oaNoticeTextarea = CKEDITOR.instances.oaNoticeTextarea;
//加载完成事件
CKEDITOR.on('instanceReady', function (ev) {
alert(ev.editor.id);
});
});
如果有多个ckeditor实例,并且每个实例都执行不一样的事件,这个时候可以在渲染的时候,把事件方法写到配置里面。
例如:
//创建富文本框
CKEDITOR.replace(textareaId,{
height:380,
enterMode:CKEDITOR.ENTER_P,
toolbar: toolbar,
extraPlugins: 'textindent',
on: {
"instanceReady": function (ev) {
//加载完成后处理方法
alert(ev.editor.id);
}
}
});
这样不同的实例之间就执行不同的方法了。
另外我在一个ajax回调方法中,调用ckeditor渲染方法,CKEDITOR.replace(textareaId),富文本框创建成功,页面上显示出来后,第一种方式注册的事件并没有执行。只能使用第二种方式注册事件,才能执行。这里不清楚为什么,是不是冲突。