本来一直喜欢用ewebeditor这个编辑器,主要是工具栏之类的设置方便(FCKeditor的编辑器设置太麻烦了,在js里改来改去,不直观),但由于这个编辑器的兼容性不好,语言版本也少(主要就中文版的,英文版我手上也有,不过不知道是不是官方发布的,还是人为修改的),用的版本当然是免费版,穷人,没办法。不过ewebeditor对浏览器的兼容性太差,估计也就IE内核的浏览器能用,火狐、谷歌之类的浏览器统统不支持。手上有个国外的网站,人家就是喜欢用火狐之类的浏览器,所以没办法,只能使用FCKeditor浏览器来替换。以前没用过,使用的时候居然还出现了很多问题。做个记录,方便以后使用。
1、首先当然到FCKeditor的官方网站去下载一个免费的,下载地址:http://www.fckeditor.net/download
我下载的版本是2.6.4
2、测试一下附带的例子。(习惯问题,下载一个东西,都喜欢先测试一下,然后再应用)
基本功能都好用,就是上传不好使。弹出窗口,一直显示进度条,居然还关不掉,晕死。还好刷新一下就没了。这种没任何提示的东西最麻烦,还好我用ie浏览器有个httpwatch的监视工具,打开一看才知道,虽然是asp的demo,默认的上传处理居然是php的。(有点晕,既然提供了这么多开发语言的例子,就把demo的做做完整嘛,搞得demo都跑不起来,asp的demo还用了php的页面)
解决办法:找到fckconfig.js,直接搜索php(习惯不好,不喜欢看说明,基本都自己先找,搞不懂再去看说明),找到两个看着像的地方,直接把php改成asp了
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
3、再尝试上传文件,提示上传功能关闭,根据提示去修改fckeditor\editor\filemanager\connectors\asp目录下面的config.asp文件
Dim ConfigIsEnabled
ConfigIsEnabled = False把False改为true
改为之后就能上传了。
既然测试OK了,那就开始使用了。
4、把编辑器的整个文件夹拷贝到网站下面,删除没用的文件(FCKeditor里的文件太多了,很多在应用的时候都是没用的,FCK应该出个清洁版和完整版)
删除的文件:
a.“_”打头的文件和文件夹都删除
b.fckeditor\editor\filemanager\connectors目录下有很多种语言的接口,没用的全部删除,我就留下asp文件夹
c.根目录下面的文件太多,jsp、php、pl什么都有,统统删除,就保留fckconfig.js、fckeditor.asp、fckeditor.js、fckstyles.xml和fcktemplates.xml
d.fckeditor\editor\lang下面没用的语言都删除了
这下终于干净多了。
5、根据提供的demo来使用编辑器
a)加入包含文件<!-- #INCLUDE file="fckeditor/fckeditor.asp" -->
b)复制代码过去
Dim sBasePath
sBasePath = Request.ServerVariables("PATH_INFO")
sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) )
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = sBasePath
oFCKeditor.Value = "<p>This is some <strong>sample text</strong>. You are using Fckeditor."
oFCKeditor.Create "FCKeditor1"
修改了一下sBasePath,反正就是获取编辑器文件夹的路径,可以直接设置也可以通过程序来获取,注意:路径如果直接设置的,虚拟目录和站点的情况不同,值也不同。所以默认的例子代码还是可取的。这种取值方式不管是虚拟目录还是站点都不会错。
6、上面的代码一加就算完事了,asp通过request.form("FCKeditor1")就能取到值了。(当然你要改名也可以)
7、那个客户的空间有点BT,IIS父路径的功能都是关闭的,所以我还需要修改一下文件的上传目录,只能上传到fckeditor\editor\filemanager\connectors\asp这个目录或者它的子目录。
找到这个目录下面的config.asp文件
Dim ConfigUserFilesPath
ConfigUserFilesPath = "/userfiles/" 修改这个值就可以了,同样需要注意一下虚拟目录和站点的路径问题。
最后编辑器可以使用了,还想美化一下,使用一下样式、设置一下工具栏、调整一下高度宽度之类的。
a)设置样式:oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/office2003/" (反正默认带了几个样式)
b)设置语言:
oFCKeditor.Config("AutoDetectLanguage") = False(记得这个是必须的,否则就是自动检测了)
oFCKeditor.Config("DefaultLanguage") = "en"
c)设置高度:oFCKeditor.Height = "500"
d)设置工具栏:oFCKeditor.ToolbarSet = "Basic",后面的值是自己在FCKConfig.ToolbarSets的地方设置的,对照完整的那个工具栏,自己挑几个放进去,注意区分大小写。
其他一些小插曲:
由于编辑器编辑好的内容是写入到xml文件,然后在flash里读取的,所以有些html标签是不能使用的。例如加粗,只能用b,不能用strong,斜体只能用i,不能用em,FCK编辑器默认的都是strong和em,这个需要自己改一下配置(我也不知道为什么,反正试试看,有用了就行)
FCKConfig.CoreStyles =
{
// Basic Inline Styles.
'Bold' : { Element : 'strong', Overrides : 'b' }, 这个地方我把strong和b换了一下位置
'Italic' : { Element : 'em', Overrides : 'i' }, 这个地方我把em和i换了一下位置
还有一个比较郁闷的地方,最终还是没搞定,通过另类的方式来实现。FCK编辑器设置字体、颜色、大小都是通过style的方式来实现的,结果flash不能识别这个样式,必须要通过<font color="#aaa">的形式才会识别。
'FontFace' :
{
Element : 'span',
Styles : { 'font-family' : '#("Font")' },
Overrides : [ { Element : 'font', Attributes : { 'face' : null } } ]
},
'Size' :
{
Element : 'span',
Styles : { 'font-size' : '#("Size","fontSize")' },
Overrides : [ { Element : 'font', Attributes : { 'size' : null } } ]
},
'Color' :
{
Element : 'span',
Styles : { 'color' : '#("Color","color")' },
Overrides : [ { Element : 'font', Attributes : { 'color' : null } } ]
},
FCK上面这段就是生成那段样式代码,但怎么改都不对,最后没折了,我程序里人为把那段样式替换成<font形式