FCKeditor确实是一款不错的网页在线编辑器,功能非常之强大,但是作为一个初学者,它的使用和配置还是比较复杂的,网上有关的介绍凌乱而复杂。为此我专门做一下介绍,希望对你有所帮助!
注:本文使用的FCKeditor是2.4版的,asp和js在配置上是一样的,但在调用上有一点区别
一、FCKeditor的配置
这些配置其实安默认的也可以,如果你不喜欢的话,就可以修改了,大多数配置在fckconfig.js文件中,此文件在FCKeditor文件夹的根目录下
1、常用设置
AutoDetectLanguage=true/false 自动检测语言
BaseHref="" 相对链接的基地址
ContentLangDirection="ltr/rtl" 默认文字方向
ContextMenu=字符串数组,右键菜单的内容
CustomConfigurationsPath="" 自定义配置文件路径和名称
Debug=true/false 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容
DefaultLanguage="" 缺省语言
EditorAreaCss="" 编辑区的样式表文件
EnableSourceXHTML=true/false 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML
EnableXHTML=true/false 是否允许使用XHTML取代HTML
FillEmptyBlocks=true/false 使用这个功能,可以将空的块级元素用空格来替代
FontColors="" 设置显示颜色拾取器时文字颜色列表
FontFormats="" 设置显示在文字格式列表中的命名
FontNames="" 字体列表中的字体名
FontSizes="" 字体大小中的字号列表
ForcePasteAsPlainText=true/false 强制粘贴为纯文本
ForceSimpleAmpersand=true/false 是否不把&符号转换为XML实体
FormatIndentator="" 当在源码格式下缩进代码使用的字符
FormatOutput=true/false 当输出内容时是否自动格式化代码
FormatSource=true/false 在切换到代码视图时是否自动格式化代码
FullPage=true/false 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
GeckoUseSPAN=true/false 是否允许SPAN标记代替B,I,U标记
IeSpellDownloadUrl=""下载拼写检查器的网址
ImageBrowser=true/false 是否允许浏览服务器功能
ImageBrowserURL="" 浏览服务器时运行的URL
ImageBrowserWindowHeight="" 图像浏览器窗口高度
ImageBrowserWindowWidth="" 图像浏览器窗口宽度
LinkBrowser=true/false 是否允许在插入链接时浏览服务器
LinkBrowserURL="" 插入链接时浏览服务器的URL
LinkBrowserWindowHeight=""链接目标浏览器窗口高度
LinkBrowserWindowWidth=""链接目标浏览器窗口宽度
Plugins=object 注册插件
PluginsPath="" 插件文件夹
ShowBorders=true/false 合并边框
SkinPath="" 皮肤文件夹位置
SmileyColumns=12 图符窗列数
SmileyImages=字符数组 图符窗中图片文件名数组
SmileyPath="" 图符文件夹路径
SmileyWindowHeight 图符窗口高度
SmileyWindowWidth 图符窗口宽度
SpellChecker="ieSpell/Spellerpages" 设置拼写检查器
StartupFocus=true/false 开启时FOCUS到编辑器
StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置
TabSpaces=4 TAB键产生的空格字符数
ToolBarCanCollapse=true/false 是否允许展开/折叠工具栏
2、文件上传
FCKeditor 的文件管理程序在fckeditor\editor\filemanager文件夹中,又分为浏览(browser)和上传(upload)两种。浏览指浏览服务器中的文件,上传指上传本地文件。
打开和关闭文件浏览和上传功能
首先是fckconfig.js文件,以下内容设为true为开,false则为关。
文件浏览和浏览中上传功能:
FCKConfig.LinkBrowser = false ;
FCKConfig.ImageBrowser = false ;
FCKConfig.FlashBrowser = false ;
文件快速上传功能:
FCKConfig.LinkUpload = true ;
FCKConfig.ImageUpload = true ;
FCKConfig.FlashUpload = true ;
其次设置两个asp文件:
editor\filemanager\browser\default\connectors\asp\config.asp
ConfigIsEnabled = False
表示文件浏览关闭
editor\filemanager\upload\asp\config.asp
ConfigIsEnabled = True
表示文件快速上传打开
文件上传或浏览的路径设置
注意FCKeditor是不支持虚拟目录的,您的所有路径都是针对网站根目录的绝对路径,这点对于在本地测试用虚拟目录,发布到远程用网站目录的开 发者不太方便。我的就是这样,WinXP系统只能一个站点,只有用虚拟目录表示不同的网站,在本地测试好了,上传前还要临时更改这个设置。
文件浏览路径,打开文件editor\filemanager\browser\default\connectors\asp\config.asp:
ConfigUserFilesPath = "/attachments/"
快速上传的路径,打开文件editor\filemanager\upload\asp\config.asp:
ConfigUserFilesPath = "/attachments/"
我的文件目录在http://127.0.0.1/temp/下面,就照以上设置。如果在本地测试这个网站在虚拟目录xxx中,则应该设置为:
ConfigUserFilesPath = "/127.0.0.1/temp/"
文件快速上传的一个源文件BUG
以上设置好后,文件浏览和浏览中上传可以顺利进行,但是你会发现“快速上传”不能用。现象就是当选择好本地文件后,点击“上传至服务器”的按钮后没有任何反应。这就是因为fckconfig.js文件中的一个bug所致。
打开fckconfig.js文件,把FCKConfig.QuickUploadLanguage字样的地方,替换成_QuickUploadLanguage,一共要替换三个地方。前者没有定义就使用,所以有错,按代码意图应该和后者的值一样的。
上传文件名自动更名
FCKeditor 不支持中文文件名称,所以我们要让文件存入服务器时更改名称。由于有两个上传的地方,而且所用文件不同,所以两个文件应该同时改,我们先来看看快速上传的 文件,打开editor\filemanager\upload\asp\upload.asp,在文件最后添加以下函数:
Public Function GetNewFileName()
dim ranNum
dim dtNow
dtNow=Now()
randomize
ranNum=int(90*rnd)+10
GetNewFileName=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function
我们用年月日时分秒和两位随机数字来作为文件名,这样既能够分辨出文件上传时间,也不容易重名。
然后仍然是这个文件,找到:
'' Get the uploaded file name.
sFileName = oUploader.File( "NewFile" ).Name
把它改为:
'' Get the uploaded file name.
sFileName = GetNewFileName() &"."& split(oUploader.File( "NewFile" ).Name,".")
上面说的是快速上传的文件,而文件浏览中上传则是更改另外一个文件(editor\filemanager\browser\default\connectors\asp\commands.asp),其修改方法和上面那个文件一样:添加一个函数,修改一行代码。
二、在asp中调用FCKeditor
1、 加上<!–#include file="FCKeditor/fckeditor.asp" –>
2、 使用
<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "FCKeditor/" //设置编辑器的路径,我站点根目录下的一个目录
oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "600"
oFCKeditor.Value = "" //这个是给编辑器初始值
oFCKeditor.Create "logbody" //以后编辑器里的内容都是由这个logbody取得,命名由你定
%>
三、在js中调用
1,添加<script type="text/JavaScript" src="fckeditor/fckeditor.js"></script>
2,调用
<script type="text/JavaScript">
var oFCKeditor = new FCKeditor( 'logbody' ) ;
oFCKeditor.BasePath = ' FCKeditor/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '400' ;
oFCKeditor.Value = '' ;
oFCKeditor.Create() ;
</script>
三、关于初始化FCKeditor中的一个问题
利用asp的时候,从数据库里取出的值已经是html语言,直接使用下面的方法初始化:
oFCKeditor.Value = show(“body”)
会产生错误。
解决办法:修改文件FCKeditor.asp