处理FCKeditorAPI未定义的小技巧

最近在使用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未定义的问题,其实实际上也就是等他加载完成之后调用的意思,也实现了我自己的效果,具体问题具体解决把。

你可能感兴趣的:(FCKeditorAPI未定义)