在asp开发中使用FCKeditor的过程

本来一直喜欢用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形式
posted @ 2009-06-16 16:15  无知者  阅读(304)  评论(0编辑  收藏  举报