`
jickcai
  • 浏览: 249609 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

再战FCKEditor——添加自定义工具栏

    博客分类:
  • web
阅读更多
转载自http://j2ee.blog.sohu.com/36813753.html。
FCKEditor是一个功能强大的开源在线编辑器,所以是非常适合我等兜兜无啥银子的人拿来“把玩”的~~~呵呵。一个产品即使功能再强大也不能满足所有用户的需求,当然FCKEditor也不例外咯。就拿我现在所开发的一个系统(工作流)来说,就遇到了FCKEditor不能满足我的要求的情况。因为我想在工具栏中加入自己的操作控制按钮,配置当然搞不定咯,就只有改源代码了。可一看FCKEditor经过处理后的JS源码,头立刻就大了—— 无换行无注释,一大堆JS代码堆在那里,想看懂几乎没门。当然它这样做也是有好处的,要不这大的一个东西加载怎么会那么快呢。看不懂处理后的JS源码,我们可以看有格式的源码嘛,所以就上网down了一个2.4的FCKEditor。好了,现在就让我们开始怎么一步一步的加入我们自己的操作菜单到工具栏中去。

    比如我想加一个我自己的输入框用来控制日期的输入,即该输入框只能通过选择来选择日期,这个我们结合日期控件my97来做,呵呵,充分利用已有的成果。有人会说,我直接改它的对话框不就得了,当然这也是可以的,可我们今天要做的就是如何加入自己的工具栏操作,这样以后就可以依次类推,加入任何想要加入的操作了:-)。

    首先,我们给这个日期输入框定一个名字,就叫做CTRL_Date吧。第一步嘛,我们就直接在fckconfig.js文件中的Basic工具条集(FCKConfig.ToolbarSets["Basic"])中加入这个名称,加进去很简单吧,呵,不多说了。然后呢,也得给它弄个中文名称什么的吧,直接打开语言文件zh-cn.js,英文的就不管了哈,加入:CTRL_Date : "日期控件"。另外还得加一个上下文语言提示菜单,这样在编辑区域内就可以通过右键选择属性来进行编辑操作了。也是在zh-ch.js中加入:CTRLDateProp : "日期控件属性"。到这里,又要回到fckconfig.js文件中了,我们在FCKConfig.ContextMenu中加入CTRL_Date,这样才能使其拥有上下文菜单嘛。到这里,基础工作就做完了,呵呵,然后就是艰巨的源码改造工程了,当然了也不要怕咯,一步一步来就没问题了~~@_@

    我们解压下载的FCKEditor2.4,然后找到fckregexlib.js文件,找到其中的NamedCommands,然后把CTRL_Date 加到最后,然后再修改fckeditor处理后的最终JS文件fckeditorcode_ie.js(只改IE的,至于FF就不管了,对不起它了,嘿)。网上说可以用一个什么程序来进行源码打包的,可我在下的压缩包里没看到呢,所以就只有手动修改这个最终的文件了。在该文件中找到 NamedCommands这一位置然后在最后加入CTRL_Date,这样就注册了一个命令CTRL_Date了。然后再找到源代码文件夹中的 fckcommands.js文件,是不是看到很多case啊,呵,这就是工具栏中每个操作的命令了。我们依葫芦画瓢,在最后加上:case 'CTRL_Date':oCommand=new FCKDialogCommand('CTRL_Date',FCKLang.CTRL_Date,'dialog/workflow/fck_ctrl_date.html',380,230);break ;这个意思就是说,当你单击工具栏上的日期控件的时候就会以模式对话框打开dialog/workflow/fck_ctrl_date.html这个网页文件,至于是什么内容,我们待会再说。这样写好后,我们就可以加入到fckeditorcode_ie.js文件中了。我们在 fckeditorcode_ie.js文件中找到new FCKUndefinedCommand()这个位置,然后在它之后的break;之后加上我们刚才写的代码(注意把oCommand改为B后再加入,因为我的最终处理源码中是B,估计这样简写也是为了减少源码的大小吧)。这两个步骤完成后,我们就可以在工具栏中单击日期控件时打开我们自己定义的日期控件属性编辑的网页文件了。

    然后还一工程就是增加该控件的上下文菜单,要不然在编辑区域右键选择时就会弹出输入框的属性和对话框了,这可不是我们想要的结果呢。我们还是先在源码中修改,然后再复制到最终处理的源码文件中去。找到文件fcktoolbaritems.js,也有很多case哦,看名字就知道这是设置工具栏中的按钮项了。同样,我们在最后加入:case 'CTRL_Date' : oItem=new FCKToolbarButton('CTRL_Date',FCKLang.CTRL_Date,null,null,null,null,51);break; 注意其中的55表示的是该操作按钮的图标索引(这个索引指的是skins目录下的fck_strip.gif文件中图标的顺序索引),我们使用和输入框一样的图标就是51了。同样,我们在最终文件fckeditorcode_ie.js中查找字符串 alert(FCKLang.UnknownToolbarItem.replace(/%1/g(注意把空格去掉),然后在它之前的default之前加入我们刚写的语句(同样把oItem改成B)。这是完成上下文菜单的第一步,还有第二步也就是最后一步了,胜利就在眼前哦,加油了,呵呵。

    接着就是文件fck_contextmenu.js的修改了。一样也是很多case,我们加入如下语句
case 'CTRL_Date':return{AddItems:function(A,B,C){if(C=='INPUT'&& B.type=='text'&&B.className=='_wf_date'){A.AddSeparator(); A.AddItem('CTRL_Input',FCKLang.CTRLDateProp,51);}}};(注意这里的A,B,C就是源码中 menu,tag,tagName,这里直接写成A,B,C是为了直接插入到最终代码中去而已)。注意到上面中不是有个 B.className=='_wf_date'么?这是因为FCKEditor中已经自带了input输入框的控制,所以这里我们用一个样式名称来区别它自带的还是我们自加的。当然这个样式名称可以随便取的,而且在fck_ctrl_date.html这个网页文件(我们自己写的来编辑日期控件的属性文件)中需要给日期控件也就是input输入框加上className="_wf_date"属性以示区别原有的input输入框。当然,我们还要修改原来的input的case,在fckeditorcode_ie.js文件中找到字符串case 'TextField':return {AddItems所在的位置(如果找不到请去掉或增加空格),然后修改if中的条件,加一个&&B.className!='_wf_date'。最后就把我们写的上面的代码加到TextField这个case之后就可以了。这样修改后就会使当右键单击某个元素时,如果是输入框并且样式名称不是我们指定的日期控件则会调用它自带的输入框属性编辑网页,如果样式名称是我们自己定义的日期控件的名称则会调用我们自己编辑的属性网页,这样就达到了同是输入框在查看属性时分别调用不同属性编辑网页的目的了。

    好了,完成上面的所有步骤后就可以保存修改后的fckeditorcode_ie.js文件了。这里还有一点工作要做哦,就是在dialog目录下新建一个目录workflow,然后在它下新建一个日期控件属性输入的网页文件fck_ctrl_date.html。具体的内容我们可以直接copy FCKEditor自带的fck_textfield.html网页文件的内容过来,然后简单的修改下就可以了,但重要的是别忘了在ok函数中给你的日期控件加上className="_wf_date"属性哦,否则右键属性查看时则会调用FCKEditor自带的文本框输入的编辑网页了。
分享到:
评论

相关推荐

    FCKeditor简单实例(eclipse测试可用)

    4. **自定义功能**:FCKeditor允许开发者自定义工具栏按钮,通过修改`fckconfig.js`文件来实现。你可以根据项目需求添加或移除编辑器的功能项,例如图片上传、链接管理等。 5. **数据交互**:编辑器内容的保存和...

    Fck文本编辑器 FCKeditor fckeditor

    **FCK文本编辑器——FCKeditor与fckeditor详解** FCK文本编辑器,全称为FCKeditor,是一个开源的富文本编辑器,主要用于网页内容的编辑和格式化。FCKeditor以其强大的功能和易用性,被广泛应用于网站后台管理系统、...

    FCKeditor.Net_2.6.3.zip+FCKeditor_v2.6.8

    3. **插件系统**:它允许开发者通过编写插件扩展编辑器的功能,如添加新的按钮或工具栏项,实现自定义功能。 4. **多语言支持**:FCKeditor内置多种语言包,便于全球用户使用。 5. **API接口**:提供了丰富的...

    fckeditor2.6.5 for jsp

    5. **自定义配置**:开发者可以根据需求调整编辑器的配置,例如设置可使用的工具栏按钮,禁用某些功能等。 6. **API接口**:提供JavaScript API,使得开发者可以方便地与后台程序进行交互,实现编辑内容的保存、预览...

    第三方控件-富文本控件FCKeditor

    2. **配置参数**:FCKeditor支持多种配置参数,比如工具栏布局、语言设置、文件上传路径等。这些参数可以通过创建`FCKConfig.js`文件并自定义配置项来调整。 3. **插件扩展**:FCKeditor拥有丰富的插件库,可以实现...

    FCKEditort自定义插件

    本文将详细介绍如何基于FCKEditor 2.6.3版本创建一个自定义插件——“上传文件”功能。 #### 二、创建自定义插件步骤 ##### 1. 扩展工具条—添加自定义功能按钮 首先需要在FCKEditor的语言文件中加入新按钮的名称...

    精简版fckeditor

    3. `fckconfig.js`:配置文件,用于自定义FCKeditor的行为和设置,如工具栏按钮、语言、样式等。 4. `index.php`:通常作为示例或测试页面,展示了如何在PHP环境下使用FCKeditor。 5. `fckeditor_php4.php`和`...

    fckeditor2.66精简修正版(修正最新上传漏洞ASP版)

    2. `fckconfig.js`:配置文件,用于设置Fckeditor的各种选项,如工具栏按钮、文件上传路径等,开发者可以在这里定制编辑器的行为。 3. `fckeditor.js`:编辑器的核心JavaScript文件,包含了大部分的编辑器功能实现。...

    FCKEditorTest

    4. **配置编辑器**:FCKeditor提供了许多配置项,可以自定义工具栏、语言、样式、文件上传等设置。 ### 三、配置与使用 配置FCKeditor通常涉及以下方面: - **路径设置**:确保FCKeditor的路径正确,包括相对路径或...

    FCKeditor编辑器(测试通过)

    3. **可定制性**:开发人员可以根据需求调整编辑器的样式、功能,甚至可以自定义工具栏按钮,满足个性化需求。 4. **插件扩展**:FCKeditor拥有丰富的插件库,如图片上传、视频插入、代码高亮等,极大地扩展了其...

    fckedtior自编弹出框富文本编辑器——功能齐全

    FCKeditor提供了许多内置功能,如加粗、字体颜色、字体背景色、字体样式和大小的调整,这些都是通过内置的工具栏按钮实现的。对于链接的插入,用户可以选择在编辑区域内选中文字,然后点击链接按钮,输入URL即可。...

    fckeditor(网页内容格式化插件)

    5. **自定义配置**:开发者可以根据需求调整编辑器的设置,如工具栏按钮、语言、皮肤等。 6. **兼容性**:FCKeditor与主流的Web浏览器(如Firefox、Chrome、Safari、Internet Explorer等)兼容,确保用户可以在不同...

    fckeditor在线编辑器

    2. **配置编辑器**:根据项目需求,可以修改配置文件(通常为`fckconfig.js`),设置语言、默认样式、工具栏布局等。 3. **引入编辑器**:在需要使用编辑器的页面中,通过JavaScript引入FCKeditor的脚本,并创建...

    Java 文件编辑模块jar包

    2. **可自定义**:用户可以根据需求调整编辑器的界面布局,添加或移除工具栏按钮,以满足特定应用场景的需求。 3. **跨平台**:FCKeditor作为JavaScript编写的应用,可以运行在多种浏览器和操作系统上,包括Windows...

    FCK编辑器

    8. **替代品与升级**:随着技术的发展,FCKeditor的开发团队后来推出了它的下一代产品——CKEditor,后者在性能、稳定性及用户体验方面都有显著提升,许多FCKeditor用户逐渐转向使用CKEditor。 总的来说,FCKeditor...

    DW的最新插件

    3. **自定义配置**:FCKeditor允许开发者根据项目需求进行定制,可以调整工具栏按钮、设置语言、改变外观等,以适应不同用户的工作习惯。 4. **API支持**:通过其丰富的API接口,开发者可以方便地扩展功能或与后端...

    dasfasf文档编辑器

    开发者可以根据需求自定义编辑器的样式和功能,通过配置文件或者编程方式实现个性化设置,如工具栏按钮的选择、字体和字号的设定等。 FCKeditor的核心特性包括: 1. **兼容性**:它支持多种浏览器,包括Internet ...

    解密FCKeditor 2.0 的设置.修改.使用方法

    3. **安全设置**:考虑到安全因素,尤其是在前台使用时,推荐使用预定义的“Basic”工具栏或自定义工具栏,移除潜在的安全隐患功能,如删除链接功能和图像插入功能。具体修改如下: ```javascript FCKConfig....

    非常好的ASP.NET文本编辑器

    这款特定的编辑器——fckeditor2.6.3_2,可能是FCKeditor的一个旧版本。FCKeditor是一个开源的JavaScript富文本编辑器,最初由FredCK创建。它被广泛用于各种网站,提供了一种简单的方式来实现用户友好的内容编辑。 ...

    fck编辑器手册详解

    同时,`EditorAreaStyles`用于定义编辑区的特定样式,而`ToolbarComboPreviewCSS`则用于工具栏预览的CSS样式。 文档类型的设定也很重要,通过`FCKConfig.DocType`可以指定文档的DOCTYPE,这对于确保浏览器正确解析...

Global site tag (gtag.js) - Google Analytics