天天看點

ext整合fckeditor

代碼如下: var oFCKeditorOptions = {

    BasePath : 'fckeditor/',   

    Config : {   

        ProcessHTMLEntities : true,   

        ProcessNumericEntities : false,   

        StartupShowBlocks : false,   

        ToolbarCanCollapse : false       

    },   

    ToolbarSet : 'Default' 

};

Ext.form.FCKeditor = function(config){

Ext.form.FCKeditor.superclass.constructor.call(this, config);

this.FCKid=0;

this.MyisLoaded=false;

this.MyValue='';

};

Ext.extend(Ext.form.FCKeditor, Ext.form.TextArea,  {

onRender : function(ct, position){

        if(!this.el){

            this.defaultAutoCreate = {

                tag: "textarea",

                style:"width:100px;height:60px;",

                autocomplete: "off"

            };

        }

        Ext.form.TextArea.superclass.onRender.call(this, ct, position);

        if(this.grow){

            this.textSizeEl = Ext.DomHelper.append(document.body, {

                tag: "pre", cls: "x-form-grow-sizer"

            });

            if(this.preventScrollbars){

                this.el.setStyle("overflow", "hidden");

            }

            this.el.setHeight(this.growMin);

        }

  if (this.FCKid==0) this.FCKid=get_FCKeditor_id_value()

  setTimeout("loadFCKeditor('"+this.name+"');",100);

    },

    setValue : function(value){

    this.MyValue=value;

    if (this.FCKid==0) this.FCKid=get_FCKeditor_id_value()

    FCKeditorSetValue(this.FCKid,this.name,value)

    Ext.form.TextArea.superclass.setValue.apply(this,[value]);

    },

    getValue : function(){

    if (this.MyisLoaded){

      value=FCKeditorGetValue(this.name);

      Ext.form.TextArea.superclass.setValue.apply(this,[value]);

  return Ext.form.TextArea.superclass.getValue(this);

    }else{

      return this.MyValue;

    }

    },

    getRawValue : function(){

    if (this.MyisLoaded){

      value=FCKeditorGetValue(this.name);

      Ext.form.TextArea.superclass.setRawValue.apply(this,[value]);

  return Ext.form.TextArea.superclass.getRawValue(this);

    }else{

      return this.MyValue;

    }

    }

});

Ext.reg('fckeditor', Ext.form.FCKeditor);

function loadFCKeditor(element){

oFCKeditor = new FCKeditor( element ) ;

oFCKeditor.ToolbarSet = sFCKeditorToolbar ;

oFCKeditor.Config['SkinPath'] = sFCKeditorSkinPath ;

oFCKeditor.Config['PreloadImages'] = sFCKeditorSkinPath + 'images/toolbar.start.gif' + ';' +

    sFCKeditorSkinPath + 'images/toolbar.end.gif' + ';' +

    sFCKeditorSkinPath + 'images/toolbar.bg.gif' + ';' +

    sFCKeditorSkinPath + 'images/toolbar.buttonarrow.gif' ;

oFCKeditor.BasePath = sFCKeditorBasePath ;

oFCKeditor.Config['BaseHref'] = sFCKeditorBaseHref ;

oFCKeditor.Height = 260 ;

oFCKeditor.ReplaceTextarea() ;

}

function FCKeditor_OnComplete(editorInstance){

    Ext.getCmp(editorInstance.Name).MyisLoaded=true;

    editorInstance.Events.AttachEvent('OnStatusChange', function(){

    Ext.getCmp(editorInstance.Name).setValue();

    })

}

var FCKeditor_value=new Array();

function FCKeditorSetValue(id,name,value){

if ((id!=undefined)&&(name!=undefined)){

  if (value!=undefined) FCKeditor_value[id]=value;

  else if (FCKeditor_value[id]==undefined) FCKeditor_value[id]='';

  var oEditor = FCKeditorAPI.GetInstance(name) ;

  if(oEditor!=undefined) oEditor.SetData(FCKeditor_value[id])

}

}

function FCKeditorGetValue(name){

if ((id!=undefined)&&(name!=undefined)){

  var oEditor = FCKeditorAPI.GetInstance(name) ;

  data='';

  if(oEditor!=undefined) data=oEditor.GetData()

  return data;

}

}

var FCKeditor_id_value;

function get_FCKeditor_id_value(){

if (!FCKeditor_id_value){

  FCKeditor_id_value=0;

}

FCKeditor_id_value=FCKeditor_id_value+1;

return FCKeditor_id_value;

}

{   

                xtype: 'fckeditor',   

                name: 'n_context',   

                id: 'n_context',   

                fieldLabel: '内容',   

                height: 550

}

繼續閱讀