其实很早以前就使用过FCKeditor,那是在做一个新闻发布系统中,当时使用jsp + struts来开发,FCKeditor在jsp下的配置在网上有很多相关的文章,这里就不多说了。现在使用Velocity开发tycho时,也用到了 FCKeditor,其实配置和jsp一样,只是思维需要转换一下,即,网上所介绍的jsp下使用FCKeditor一般都是在jsp页面上生成实例,而 Velocity并不能完成这一需求,那么我们将FCKeditor的实例放在后台bean中生成,并放入request,然后在Velocity中对其进行设置。后台bean中写法如下:
- FCKeditor fckEditor = new FCKeditor(super.getRequest());
- request.setAttribute("fckEditor", fckEditor);
Velocity页在中取到这个实例并对其进行设置:
- $!{fckEditor.setHeight("190")}
- $!{fckEditor.setWidth("420")}
- $!{fckEditor.setBasePath("fckeditor/")}
- $!{fckEditor.setToolbarSet("Basic")}
- $!{fckEditor.setInstanceName("comment")}
- $!{fckEditor.create()}
非常简单,比用jsp实现要容易多了。至少不用设置page。
利用Javascript取和设FCKeditor值也是非常容易的,如下:
- // 获取编辑器中HTML内容
- function getEditorHTMLContents(EditorName) {
- var oEditor = FCKeditorAPI.GetInstance(EditorName);
- return(oEditor.GetXHTML(true));
- }
- // 获取编辑器中文字内容
- function getEditorTextContents(EditorName) {
- var oEditor = FCKeditorAPI.GetInstance(EditorName);
- return(oEditor.EditorDocument.body.innerText);
- }
- // 设置编辑器中内容
- function SetEditorContents(EditorName, ContentStr) {
- var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
- oEditor.SetHTML(ContentStr) ;
- }
FCKeditorAPI是FCKeditor加载后注册的一个全局对象,利用它我们就可以完成对编辑器的各种操作。
在当前页获得 FCK 编辑器实例:
- var Editor = FCKeditorAPI.GetInstance(‘InstanceName’);
从 FCK 编辑器的弹出窗口中获得 FCK 编辑器实例:
- var Editor = window.parent.InnerDialogLoaded().FCK;
从框架页面的子框架中获得其它子框架的 FCK 编辑器实例:
- var Editor = window.FrameName.FCKeditorAPI.GetInstance(‘InstanceName’);
从页面弹出窗口中获得父窗口的 FCK 编辑器实例:
- var Editor = opener.FCKeditorAPI.GetInstance(‘InstanceName’);
获得 FCK 编辑器的内容:
- oEditor.GetXHTML(formatted); // formatted 为:true|false,表示是否按HTML格式取出
也可用:
- oEditor.GetXHTML();
设置 FCK 编辑器的内容:
- // 第二个参数为:true|false,
- // 是否以所见即所得方式设置其内容。
- // 此方法常用于"设置初始值"或"表单重置"哦作。
- oEditor.SetHTML("content", false);
插入内容到 FCK 编辑器:
- oEditor.InsertHtml("html"); // "html"为HTML文本
检查 FCK 编辑器内容是否发生变化:
- oEditor.IsDirty();
在 FCK 编辑器之外调用 FCK 编辑器工具条命令:
DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo
使用方法如下:
- oEditor.Commands.GetCommand(‘FitWindow’).Execute();
这只是 FCKEditor 庞大体系中的一点点东西。