当前位置: 首页 > 图文教程 > 网络编程 > 网页编辑器 > ASP下使用FCKeditor在线编辑器的方法

网页编辑器
FCKeditor 2.0 简化和使用
jsp fckeditor 上传中文图片乱码问题的解决方法
IE8 Fckedit2.6.X不兼容
fckeditor php上传文件重命名的设置
FCKeditor 新闻组件的一些程序漏洞
FckEditor 配置手册中文教程详细说明
Windows Live Writer 实现代码高亮
FckEditor 中文配置手册详细说明
FCKEidtor 自动统计输入字符个数(IE)
nicedit 轻量级编辑器 使用心得
FCKEditor 表单提交时运行的代码
FCKeditor 插件开发 示例(详细版本)
fckeditor 插件实例 制作步骤
fckeditor 插件开发参考文档
fckeditor 常用函数
FCKeditor ASP.NET 上传附件研究
FCKEditor SyntaxHighlighter整合实现代码高亮显示
HTML 编辑器 FCKeditor使用详解
fckeditor 代码语法高亮
eWebEditor 辑器按钮失效 IE8下eWebEditor编辑器无法使用的解决方法

网页编辑器 中的 ASP下使用FCKeditor在线编辑器的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 170 ::
收藏到网摘: n/a

有不少朋友现在也喜欢用asp下用fckeditor编辑器了,下面是具体的使用方法。需要的朋友可以参考下。 先说一下我的测试环境:XPSP2,IIS5.1,FCKeditor2.0
  在IIS上建立一个新的站点,我直接取名为FCKeditor
  在DW里建立一个相对应的站点,测试服务器为本机,支持VBScript
  下载FCKeditor2.0,这个东西是开源的,网上能下到的地方很多,自己找去……
  下载下来的应该是压缩包,解压到FCKeditor站点根目录,什么都不需要更改,直接就可以开始调用了。等你会了的时候,会发现简单得要死去!
  在站点根目录下,新建一个index.asp页面,段内加如下代码(调用编辑器):
复制代码 代码如下:

<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/FCKeditor/" //设置编辑器的路径,我站点根目录下的一个目录
oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "600"
oFCKeditor.Value = "" //这个是给编辑器初始值
oFCKeditor.Create "logbody" //以后编辑器里的内容都是由这个logbody取得,命名由你定
%>
<%
  Dim oFCKeditor
  Set oFCKeditor = New FCKeditor
  oFCKeditor.BasePath = "/FCKeditor/" //设置编辑器的路径,我站点根目录下的一个目录
  oFCKeditor.ToolbarSet = "Default"
  oFCKeditor.Width = "100%"
  oFCKeditor.Height = "600"
  oFCKeditor.Value = "" //这个是给编辑器初始值
  oFCKeditor.Create "logbody" //以后编辑器里的内容都是由这个logbody取得,命名由你定
  %>

  加了这一段别忘了在index.asp前面第二行加上
复制代码 代码如下:

  <!--#include file="FCKeditor/fckeditor.asp" -->

  把fckeditor.asp包含进来。切记切记!
  就这么简单!
  现在你只要把这个编辑器当成一个控件来使用,提取它的数据时用:request("logbody")
  现在松口气吧。测试成功了。里面有些设置,去网上找些高级的使用说明来看吧。
  FCKeditor使用初步
  FCKeditor 2.0版终于出来了,之所以用“终于”这个词,是因为在这一版本上加上了众望所归的Flash插入功能。可以说在所有的在线编辑器中,FCKeditor是目前互联网上最好的编辑器,功能强大,支持多种浏览器,无平台限制,可以和多种WEB语言融合,多语言支持,开源等~~
  对于一个全新的网站,FCKeditor就可以直接拿过来用了,不需要进行什么修改。但是对于绝大多数的已有网站而言,FCKeditor的一些设置并不适合自己的使用,这篇文章旨在告诉你简单的修改FCKeditor以方便您的网站的使用。
  第一项工作就是对这个功能宏大的编辑器进行精简,当然是文件精简而非功能精简化。在这里我以asp版的FCKeditor为例进行,进入到 FCKeditor 2.0文件夹下,先把以“_”为开头的文件夹统统删除,这些文件夹里放的是范例或是一些其它工具。其实也就是只保留editor文件夹、 fckconfig.js、fckeditor.asp、fckeditor.js、fckstyles.xml、fcktemplates.xml就可 以了,最外层的精简化完毕,进入到editor文件夹内,先把“_source”文件夹删除,这里是一些源文件,对于使用来说没什么用处。
  进入images文件夹,删除smiley文件夹,些文件是放表情图标的,由于接下来我会用我自己的表情图标,先把他们的删除,当然,如果你想 用这里的表情图标那就不要删掉了。退出 images再进入lang文件夹内,这里的东西可以来个大清洗了,只保留fcklanguagemanager.js、zh-cn.js、en.js、 zh.js这四个文件,第一个文件是语言配置文件,有了它才能和fckconfig.js里的设置成对对应上相应的语言文件,zh-cn.js是简体中文 语言包,en.js就不用说了吧,zh.js是繁体中文的。怎么样?一下子少了几百K,爽吧~
  再退出lang文件夹,进入skin文件夹,如果你想使用fckeditor默认的这种奶黄色,那就把除了default文件夹外的另两个文件 夹直接删除,如果想用别的,那就自己考虑了,不过我给你个建议,如果不想用默认的,那就选那个silver,因为银色也就是灰色和任何颜色配起来都不会难 看,而那个office2003的皮肤,反正我是非常不喜欢的,并且图片相对也比较大,又增加了下载时间,不要!
  精简的最后一步,退出skin文件夹,再进入filemanager,如果你用的不是最新版的fckeditor的话,那这里就一个文件夹 browser,新版的还有一个upload文件夹。一个个来,先进入到 filemanager/browser/default/connectors/下,因为我是用的asp的,所以除asp文件夹外,全部删除。然后再进 入filemanager/upload/下,同样,只留asp文件夹,至此,编辑器的精简化已经结束了,接下来,我们对编辑器进行设置修改。
  第一个修改的文件,也就是fckeditor总配置文件,位于根目录下的fckconfig.js文件。请根据下面的列表进行(以fckeditor 2.0版的为准):
  找到第20行 FCKConfig.DefaultLanguage = 'en' ;改为 FCKConfig.DefaultLanguage = 'zh-cn' ;设置默认语言为简体中文
  找到第40行 FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键。
  如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,也就是基本的toolbar,
  找到第64行 FCKConfig.ToolbarSets["Basic"] = [
  ['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link', */'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
  ] ;
  这是我改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和Flash和图像按钮添加功能都能让前台页直接访问和上传文件,要是这儿不改直接给你上传个木马还不马上玩完?但是光这样还不行,fckeditor还支持编辑域内的鼠标右键功能。
  找到第73行
  FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
  这也是我改过的把鼠标右键的“链接、图像,Flash,图像按钮”功能都去掉。
  找到 第77行 FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
  加上几种我们常用的字体 FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
  接下来就设置上传功能了,还是以ASP为例,其实fck默认的就是asp的,把100行以下的所有被注释掉的代码全部删掉就行,然后再把下面所 有有关于browser.html和upload.asp的后面的?Type=XX都改成Type=YY,其中YY为你想保存文件的文件夹名称。
  而如果你还想用自己的表情图标的话,那跳到131行,改掉那个表情图标的文件夹地址,以及下面的表情图标的文件名,再下面那三个数字是每行显示表情数及弹出窗口的宽和高了,这个的大小要根据您的表情图标排列的窗口的大小而定了。OK,总配置文件修改结束。
  接下来是编辑器位置的设置,我的习惯是把editor放在根目录下,最开始所述的五个文件也放在根目录下(Tips:建议放在根目录下,并且建 议使用时设置路径也采用绝对路径,如"/fckeditor/",而我的习惯的设置是"/"),这样有利于fckeditor的更新升级,并且网站下所有 文件夹都可以任意调用,不存在其它文件夹名变了而其它地方就无法使用编辑器的问题。
  打开fckeditor.asp文件,找到 sBasePath = "/fckeditor/"改为 sBasePath = "/"
  打开fckeditor.js文件,找到 this.BasePath = '/fckeditor/' ;改为 this.BasePath = '/' ;
  编辑器域内默认的显示字体为12px,而我的主页默认字体为14px,所以看着就很不舒服,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,把第4行改为 font-size: 14px;即可。
  接下来就是上传文件的设置了,这个比较麻烦,请仔细操作。
  打开\editor\filemanager\browser\default\frmresourcetype.html,找到第15行,插 入“ ['uploadfile','uploadfile'],”配合上刚才在fckconfig.js里的设置,那么我的上传文件路径就是 /uploadfile,当然你也可以改成你想要的文件夹,但这里的名称一定要和fckconfig.js里的那个“Type=YY”里的YY一致才行。
  还没完,继续进入到editor\filemanager\browser\default\connectors\asp,打开 config.asp,先把ConfigIsEnabled = False改成为ConfigIsEnabled = True,要不是没法上传文件的,再把ConfigUserFilesPath = "/UserFile"改成我想要的ConfigUserFilesPath = "/"。
  接着在“Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )”后面加入ConfigAllowedExtensions.Add "uploadfile", ""
  ConfigDeniedExtensions.Add "uploadfile", ""
  同理,这里的设置也是要和上面以及fckconfig.js里面对应的。
  还有一个上传,就是快速上传,这个功能是在fckeditor 2.0里才有的,以前的版本没这个功能。进入\editor\filemanager\upload\asp,同样打开config.asp,也同样的把 ConfigIsEnabled = False 设置成 ConfigIsEnabled = True,我这里把ConfigUserFilesPath = "/UserFiles/"改成我想要的 ConfigUserFilesPath = "/uploadfile/"& Year(Date()) &"-"& Month(Date()) &"/",因为我的上传文件是放在uploadfile文件夹下,并且是按月分开放置的。快速上传,不会让你选择文件夹,而是通过这里的设置直接 上传的,这儿设置如果和前面的设置配合不好的话,你的文件就会被上传得乱七八糟,很不方便管理。接前重复前一个config.asp里的操作,在后面加上
  ConfigAllowedExtensions.Add "uploadfile", ""
  ConfigDeniedExtensions.Add "uploadfile", ""
  接下来呢,就讲一下如何创建自己的在线编辑器,这里以ASP和JS版的为例,ASP版示例代码,一般用于后台操作:
复制代码 代码如下:

<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = "/"
oFCKeditor.ToolbarSet = "Default"
oFCKeditor.Width = "100%"
oFCKeditor.Height = "400"
oFCKeditor.Value = rs("logbody")
oFCKeditor.Create "logbody"
%>
<%
  Dim oFCKeditor
  Set oFCKeditor = New FCKeditor
  oFCKeditor.BasePath = "/"
  oFCKeditor.ToolbarSet = "Default"
  oFCKeditor.Width = "100%"
  oFCKeditor.Height = "400"
  oFCKeditor.Value = rs("logbody")
  oFCKeditor.Create "logbody"
  %>

  ASP版的,当然只能用在以.asp为扩展名的页面中,如果你在前在fckedito.asp里设置过BasePath为"/"的话,这里就可以省掉第三行,ASP版的只有一个Create函数。建议在修改一篇内容时用ASP版的。
  接下来看JS版的:
复制代码 代码如下:

<script type="text/javascript">
var oFCKeditor = new FCKeditor( 'logbody' ) ;
oFCKeditor.BasePath = '/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '400' ;
oFCKeditor.Value = '' ;
oFCKeditor.Create() ;
</script> 
 
  BasePath的设置同上所述,JS版的可用于任何网页中,甚至用于html页面,因为其是客户端生成的,这样的好处就是一可以减小网络流 量,因为编辑器文件只需下载一次,二是可以由客户端定义什么时候显示,由于fckeditor初始化需要一定时间,在这一点上JS就很有作用了。
  另外,JS版的还有一个功能函数就是ReplaceTextarea()函数,可以替换指定的TextArea,拿我的网站的日志的回复部分示例:
复制代码 代码如下:

<script type="text/javascript">
<!--
function showFCK(){
var oFCKeditor = new FCKeditor( 'fbContent' ) ;
oFCKeditor.BasePath = '/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.Value = '' ;
//oFCKeditor.Create() ;
oFCKeditor.ReplaceTextarea() ;
//document.blog_feedback.blogsubmit.disabled = '';
document.blog_feedback.blogsubmit.style.display = '';
document.blog_feedback.openFCK.disabled = 'true';
document.blog_feedback.openFCK.style.display = 'none';
}
//-->
</script>

  把其写成一个简单的函数,当用户显示打开编辑器时才生成这个fckeditor,不用每次刷新页面都去初始化一个编辑器,页面的速度就会快多了。
  补遗:前面讲到了,说是在编辑已有数据内容时不要用JS版的,那是因为单引号(')的问题造成的,在数据内容里难免会有单引号存在而用JS版生 成编辑器时可能就会因为单引号问题,而使编辑器无法正常生成,而采用asp则不同,用ASP版本的是因为数据被当成是一个变量了,然后直接赋值给编辑器 域。还有就是除非你要用ReplaceTextArea()方法来生成编辑器,否则你不需先写一个<textarea>这样的标签,一切都会 由fckeditor自动生成的,你所需做的只是给fckeditor指定一个实例名。同时你也不用担心如何提交,在表单提交的时候,fckeditor 会自动提交,提交的变量名是以你指定的fckeditor实例命名的。