最近在使用fckeditor的过程中,每次当我选中列表中的某行数据进行编辑的时候,弹出的页面中其他控件的值均发生改变,唯独fck里面的值一直不变,试了很久之后我决定在点击“编辑”的时候再给fck赋值一次,于是我这样写到:
var editor= FCKeditorAPI.GetInstance("contentInfo");
editor.SetHTML(content);
其中content是我获取的fck的内容,contentInfo是fck的id;然而这样写了之后又报‘FCKeditorAPI未定义’的错误,查了下原因之后发现是因为FCK还没加载完成,我们便使用了FCKeditorAPI。于是,继续度娘。。发现网上千篇一律的没给出什么具体的解决方案,要么就是说加入
function FCKeditor_OnComplete( instance ) {
editorInstance=instance;
};
可我试过之后依然没有任何效果,于是我针对自己这样的问题既然每次显示的是第一次的那个值,而赋值的问题又是因为fck为加载完成,那这么说我第一次不调用这个赋值方法,等他加载完成之后在调用,也就是第二次点击“编辑”的时候再调用,那时候肯定就不会报错了。于是乎,我这样改进了一下:
var num=0;
function edit(){
var record = selectModel.getSelected();
content = record.get('content');
editInfoForm.getForm().loadRecord(record);
num = num+1;
if(num >1){
var editor= FCKeditorAPI.GetInstance("contentInfo");
editor.SetHTML(content);
}
}
这样就解决了FCKeditorAPI未定义的问题,其实实际上也就是等他加载完成之后调用的意思,也实现了我自己的效果,具体问题具体解决把。