FCKeditor是B/S系统开发中经常用到的HTML编辑器,功能多,也支持表情。现在最新版是2.6.2,可在它官方主页下载:
http://www.fckeditor.net/download
1、安装
在ASP.NET系统中安装,除了要下载FCKeditor外,还要下载一个叫FCKeditor.NET的服务器控件,这两个都可以在上面的下载页面下载到。
FCKeditor.NET压缩包解压后,找到合适的.NET版本,再添加到VS工具箱就可以用了。而FCKeditor解压后的文件还可以精简下,可以把所有以“_”下划线开头的文件和文件夹都删除,这些文件只要是一些范例,说明和源代码。
之后只要把解压出的fckeditor整个文件夹放到系统的网站根目录中,再从VS的工具箱中把FCKeditor.NET控件拖入页面,设置其属性BasePath为./fckeditor/或~/fckeditor/,原来的默认值是/fckeditor/,设置完后就能正常使用了^^
2、配置编辑器
在fckeditor文件夹下有个命名为fckconfig.js的文件,这个是FCKeditor的配置文件,可以根据自己需要更改它来自定义编辑器。
◊ 更改默认Enter键标签
FCKeditor默认当按下Enter键时,会把之前输入的内容用<p>标签分段,假如这会影响你的页面样式的话,可通过设置更改该标签。在fckconfig.js文件中找到以下内容:
FCKConfig.EnterMode
=
'
p
'
;
//
p | div | br
FCKConfig.ShiftEnterMode
=
'
br
'
;
//
p | div | br
第一行的EnterMode即是按下Enter时的标签,可更改为注释中的p或div或br,下面一行是指按住shift键,按下Enter时的标签,默认为</br>。
◊ 更改toolbar工具条的默认项
FCKeditor默认有两种工具栏样式,分别为Default和Basic,可通过设置控件FCKeditor.NET的ToolbarSet属性切换。当然,通过更改配置文件,你可以自定义自己的工具条或更改默认的工具条。在fckconfig.js中找到以下内容:
FCKConfig.ToolbarSets[
"
Default
"
]
=
[
[
'
Source
'
,
'
DocProps
'
,
'
-
'
,
'
Save
'
,
'
NewPage
'
,
'
Preview
'
,
'
-
'
,
'
Templates
'
],
[
'
Cut
'
,
'
Copy
'
,
'
Paste
'
,
'
PasteText
'
,
'
PasteWord
'
,
'
-
'
,
'
Print
'
,
'
SpellCheck
'
],
[
'
Undo
'
,
'
Redo
'
,
'
-
'
,
'
Find
'
,
'
Replace
'
,
'
-
'
,
'
SelectAll
'
,
'
RemoveFormat
'
],
[
'
Form
'
,
'
Checkbox
'
,
'
Radio
'
,
'
TextField
'
,
'
Textarea
'
,
'
Select
'
,
'
Button
'
,
'
ImageButton
'
,
'
HiddenField
'
],
'
/
'
,
[
'
Bold
'
,
'
Italic
'
,
'
Underline
'
,
'
StrikeThrough
'
,
'
-
'
,
'
Subscript
'
,
'
Superscript
'
],
[
'
OrderedList
'
,
'
UnorderedList
'
,
'
-
'
,
'
Outdent
'
,
'
Indent
'
,
'
Blockquote
'
],
[
'
JustifyLeft
'
,
'
JustifyCenter
'
,
'
JustifyRight
'
,
'
JustifyFull
'
],
[
'
Link
'
,
'
Unlink
'
,
'
Anchor
'
],
[
'
Image
'
,
'
Flash
'
,
'
Table
'
,
'
Rule
'
,
'
Smiley
'
,
'
SpecialChar
'
,
'
PageBreak
'
],
'
/
'
,
[
'
Style
'
,
'
FontFormat
'
,
'
FontName
'
,
'
FontSize
'
],
[
'
TextColor
'
,
'
BGColor
'
],
[
'
FitWindow
'
,
'
ShowBlocks
'
,
'
-
'
,
'
About
'
]
//
No comma for the last row.
] ;
FCKConfig.ToolbarSets[
"
Basic
"
]
=
[
[
'
Bold
'
,
'
Italic
'
,
'
-
'
,
'
OrderedList
'
,
'
UnorderedList
'
,
'
-
'
,
'
Link
'
,
'
Unlink
'
,
'
-
'
,
'
About
'
]
] ;
第一个就是默认的Default工具条,你可以直接更改或者按照给出的样式自已写一个。
◊ 更改编辑区的样式
我们看到的FCKeditor编辑区实际是一个HTML页面,所以我们可以随意更变它的样式,如字体大小,背景颜色等。在fckconfig.js可找到以下内容:
FCKConfig.EditorAreaCSS
=
FCKConfig.BasePath
+
'
css/fck_editorarea.css
'
;
FCKConfig.EditorAreaStyles
=
''
;
第一行指定了一个外联的样式文件fck_editorarea.css,它的路径是/fckeditor/editor/css/fck_editorarea.css,找到它直接更改该文件就能改变编辑区样式。
第二行是提供直接写css的,可像以下这样写:
FCKConfig.EditorAreaStyles = 'body
{
font-size
:
20pt
}
p
{
margin
:
0px
}
' ;
◊ 更改默认表情
在fck_config.js文件中找到以下内容:
FCKConfig.SmileyPath
=
FCKConfig.BasePath
+
'
images/smiley/msn/
'
;
FCKConfig.SmileyImages
=
[
'
regular_smile.gif
'
,
'
sad_smile.gif
'
,
'
wink_smile.gif
'
,
'
teeth_smile.gif
'
,
'
confused_smile.gif
'
,
'
tounge_smile.gif
'
,
'
embaressed_smile.gif
'
,
'
omg_smile.gif
'
,
'
whatchutalkingabout_smile.gif
'
,
'
angry_smile.gif
'
,
'
angel_smile.gif
'
,
'
shades_smile.gif
'
,
'
devil_smile.gif
'
,
'
cry_smile.gif
'
,
'
lightbulb.gif
'
,
'
thumbs_down.gif
'
,
'
thumbs_up.gif
'
,
'
heart.gif
'
,
'
broken_heart.gif
'
,
'
kiss.gif
'
,
'
envelope.gif
'
] ;
FCKConfig.SmileyColumns
=
8
;
FCKConfig.SmileyWindowWidth
=
320
;
FCKConfig.SmileyWindowHeight
=
210
;
SmileyPath是表情图像的存放路径,SmileyImages是图片名集,可以在smiley目录下新建个文件夹,把表情图片放进去,再更改SmileyImages为新的表情文件名就可以了。
◊ 提供上传功能
要正常使用FCKeditor的上传功能,需要更改一些配置和代码。下面以aspx系统为例说明下:
首先需要更改配置文件,指定系统上传功能使用的编程语言。定位到下面的配置项:
var
_FileBrowserLanguage
=
'
aspx
'
;
//
asp | aspx | cfm | lasso | perl | php | py
var
_QuickUploadLanguage
=
'
aspx
'
;
//
asp | aspx | cfm | lasso | perl | php | py
因为是aspx应用,所以上面两项要更改为“aspx”,默认是“php”。
在/fckeditor/editor/filemanager/connectors目录下,有一些与各种语言上传相关的文件。打开/aspx/config.ascx用户控件,会看到两个函数。
·CheckAuthentication():验证是否有权限上传文件,有权限返回true,否则false
·SetConfig():文件上传配置
最简单的配置方式是CheckAuthentication直接返回true,并更改SetConfig函数中的UserFilesPath变量值,UserFilesPath是文件上传后的保存路径。
配置完成后,可通过/fckeditor/editor/filemanager/connectors/uploadtext.html文件测试上传功能是否正常。测试时假如出现错误“使用主题 css 文件要求页上有标头控件。(例如 <head runat="server" />)。”,可能是网站使用到全局theme功能,可在/filemanager/connectors/aspx/upload.aspx页面加入语句“<%@ Page StylesheetTheme=""%>”去掉错误。
◊ 动态改变编辑区高度
编辑区实际就是一个iframe,要改变编辑区的高度就是改变iframe的高度。查看网页源文件可以发现,编辑区iframe的ID是由FCKeditor的ID再加上“___frame”构成,可以得到以下改变高度的代码:
var
editArea
=
document.getElementById(
"
FCKeditor1___frame
"
);
//
假设FCKeditor1是FCKeditor的客户端ID,只适用于IE
editArea.style.height
=
'
500px
'
;
//
把高度改为500px
◊ 加载后自动隐藏工具条
FCKeditor_OnComplete是在FCKeditor加载完成后自动执行的函数,函数名必须要以FCKeditor_OnComplete命名。可以在该函数中执行一些初始化工作。
function FCKeditor_OnComplete(editorInstance)
{
editorInstance.Commands.GetCommand(
'
Source
'
).Execute();
//
执行“源代码”命令
editorInstance.ToolbarSet.Collapse();
//
隐藏工具栏
}
你也可以设置它为默认隐藏工具条,在fck_config.js文件中找到以下内容:
FCKConfig.ToolbarStartExpanded
=
true
;
//
设置工具栏默认展开/收缩
FCKConfig.ToolbarCanCollapse
=
true
;
//
设置工具栏是否可以收缩
◊ 扩展阅读
FCKeditor 2.0 的设置.修改.使用
FCKeditor Javascript API
FCKeditor Configuration Options
FCKeditor Developers Guide