原文地址
http://extjs.com/forum/showthread.php?t=17423
ext.FCKeditor.js文件:
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;
}
在引入Ext库后还必须定义以下变量
<script type="text/javascript">
var sFCKeditorToolbar = 'Default';
var sFCKeditorBasePath = '../clientscripts/FCKeditor/';
var sFCKeditorBaseHref = 'http://localhost/test/';
var sFCKeditorSkinPath = '../editor/skins/office2003/';
</script>
在Extjs组件中的使用:
{
xtype:'fckeditor',
name:'content_1',
id:'content_1',
fieldLabel:'Content',
height:270
}
以上就是ext fckeditor的完整定义,经过测试该组件还是存在这浏览器兼容的问题,而且不容易做ExtJs布局
分享到:
相关推荐
错误封装往往表现为未能遵循框架预期的方式来扩展组件,比如错误覆盖`initComponent`方法等。 - **解决方案**:仔细研究ExtJS官方文档中关于组件生命周期的相关内容,并确保正确覆盖关键方法,如`initComponent`...
"Extjs树分页组件扩展"就是为了解决这一问题而设计的,它通过扩展TreeLoader和PagingToolbar,实现了在树形组件中进行分页加载的效果。 **TreeLoader的扩展** TreeLoader是ExtJS中负责异步加载树节点的类。在原生...
1. **ExtJS组件扩展**:利用ExtJS的MVC模式,我们可以自定义组件(Component)。在这个例子中,`DatePickerPlus`可能是对`Ext.picker.Date`的扩展,增加了多选功能。我们需要覆盖或扩展原有组件的配置项、方法和事件...
这个"EXTJS扩展例子集"显然是一个包含EXTJS3.0相关扩展组件的资源包,旨在帮助开发者理解和学习如何使用这些扩展。 在EXTJS中,扩展(Extensions)通常是指对框架原有功能的增强或定制,它们可以是新的组件、小部件...
- 插件是ExtJS中扩展组件功能的一种方式,允许开发者添加自定义行为或功能到现有的组件上。 - 开发插件通常涉及创建一个新的JavaScript文件,定义一个类并扩展自`Ext.util.Plugin`或`Ext.grid.Panel`等特定组件的...
在这个"几个不错的EXTJS拓展组件"的压缩包中,你将找到34个经过精心设计和实现的EXTJS扩展组件实例,这些组件可以极大地丰富你的EXTJS应用,并提升用户体验。 首先,EXTJS的扩展组件是对其原生组件功能的增强或特定...
2. 在ExtJS组件(如`Ext.form.TextArea`)中替换为FCKeditor的实例,这通常涉及到自定义ExtJS的组件或者在渲染后调用FCKeditor的初始化方法。 3. 配置FCKeditor的设置,如工具栏、样式集等,以适应应用需求。 4. ...
漂亮的Extjs图片展示组件实例,类似于幻灯片,可直接拿去用,非常不错的哦
在标题和描述中提到的“ExtJs DWR扩展”是指将这两者结合使用,以增强数据交换和UI更新的能力。 1. **DWRProxy**: DWRProxy是ExtJs中的一个类,它作为DWR和ExtJs之间的桥梁,使得ExtJs可以利用DWR的远程调用功能。...
**ExtJS 3.0 常用组件介绍** ExtJS 是一款强大的JavaScript库,用于构建富客户端Web应用。在3.0版本中,它提供了一系列丰富的组件,这些组件可以帮助开发者构建功能丰富的用户界面。以下是一些ExtJS 3.0中的常用...
extjs-ux, EXT JS 4的一些插件和扩展 插件和 EXT JS 4扩展 Ext.ux. aceeditor.Panel 演示( 简单): 链接演示( 流 语法): 链接演示:链接论坛:链接 Ext.ux. grid.feature.Tileview 演示:链接
在EXTJS中,树型组件(Tree)是一种常见的数据展示方式,特别适合于层次结构明显的数据组织。然而,当树节点数量庞大时,一次性加载所有数据不仅会消耗大量的系统资源,也会导致用户界面响应变慢,用户体验下降。...
EXTJS fckeditor 嵌入 asp.net 测试通过,IE ,firefox都测试通过。有提取和设置值的方法。
extjs各种组件的详细实现及各种扩展归纳总结,包括各种grid,tree,布局,表单,ajax,弹出框等
01.教程简介_ExtJS4.2简介_SSH2基本框架搭建 02.编写几个通用的service方法、设计数据库 03.搭建ExtJS的MVC框架 04.主界面的搭建、登录功能和菜单树的生成 05.创建菜单树、前台保存用户信息 06.菜单树响应事件、我的...
你需要理解JavaScript和C#的交互机制,熟悉Extjs的组件使用,以及如何在fckeditor中集成富文本编辑功能。通过这个项目,你可以提升前后端协同开发的能力,以及在实际开发中解决兼容性问题的经验。
在本篇文章中,我们将深入探讨如何在实际项目中使用ExtJS 3.1的组件。 首先,`css`目录包含了ExtJS 3.1的样式文件。这些CSS文件用于定义组件的外观和布局,包括颜色、字体、边距、边框等。在使用过程中,我们需要...
extjs入门学习,各个组件的使用,包括Observable、Observable、BoxComponent、Container、Panel、Viewport及Window...