Extjs中使用kindeditor可能会出现Ext窗口(或component)已经显示完成但是kindeditor却无法显示。导致该问题的原因可能是因为extjs组件由于渲染过程比较慢,而kindeditor可能在指定节点创建之前就进行渲染,导致节点未找到等问题,
“knode[0] is undefined”这个错误的产生是因为在ext组件未渲染完成时,kindeditor就开始渲染导致指定节点找不到的错误。
通常解决该问题比较简单,使用延时函数可以很容易解决这个问题。
(function(){
try{
if(_this.kindEditor){
_this.kindEditor.remove();//判断编辑器是否存在,如果存在则移除该编辑器
}
_this.kindEditor = KindEditor.create('#ezpageTextArea',{resizeType : 0});
_this.kindEditor.html(content);
}catch(e){//突发移除,则再次尝试渲染编辑器
_this.panel.doLayout(true);
if(_this.kindEditor){
_this.kindEditor.remove();//判断编辑器是否存在,如果存在则移除该编辑器
}
_this.kindEditor = KindEditor.create('#ezpageTextArea',{resizeType : 0});
_this.kindEditor.html(content);
}
}).defer(500);//延时函数