首先下载FCKeditor。
FCKeditor的下载地址
http://www.fckeditor.net/download/default.html
我使用的是当前最新版本FCKeditor 2.3
下载 ZIP File (source code included): FCKeditor_2.3.zip
和
FCKeditor.Net_2.2.zip
FCKeditor解压后,我们只取我们需要的部分(这个可以参照网上很多文章),我就记录一下了。
保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml
其他的不需要,所有“_”开头的文件和文件夹都是范例或者是源文件。
进入filemanager文件夹,有browser和upload两个文件夹。进入browser/default/connectors,只保留aspx文件夹,其余的删掉,有一个test.html文件要留下,如果上传的时候出现错误,还要用他进行测试呢。upload也一样,只保留aspx文件夹;
编辑 fckconfig.js 文件
修改
FCKConfig.DefaultLanguage = 'en' ;
为
FCKConfig.DefaultLanguage = 'zh-cn' ;
修改
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
为
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php
找到第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还支持编辑域内的鼠标右键功能。
找到 第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'
编辑器域内默认的显示字体为12px,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,把第4行改为 font-size: 14px;即可。
在web.config中加入
<appSettings>
<add key="FCKeditor:BasePath" value="~/"/>
<add key="FCKeditor:UserFilesPath" value="/weste/Files" />
</appSettings>
要加在<system.web>...</system.web>外面,注意weste是我的工程目录,要根据实际需要进行修改,记住在工程完成后发布时要把/weste/Files根据实际情况修改一下,或者是/Files或者是/web/Files。开发阶段在运行项目时的URL是http://localhost/项目名称/的形式,发布后在服务器上建立站点,根路径就是http://www.abc.com/的形式,所以发布后一定要改过来。
差不多就这样了。对了,还要在工程目录中建立一个相对应的目录Files。
用VS.NET2003建立项目weste,引用 FCKeditor.Net_2.2.zip 解压下的 bin/Release/FredCK.FCKeditorV2.dll 文件。
编写一个最简单的页面
<%@ Register TagPrefix="FCKeditorV2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" %>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="weste.WebForm1" validateRequest=false%>
// 这里要主要两个参数
// 默认为 <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="weste.WebForm1" %>
// 我们要添加一个参数 validateRequest=false,否则提交带html代码的内容会报错
// 从客户端(...)中检测到有潜在危险的 Request.Form 值。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FCKeditorV2:FCKeditor id="FCKeditor1" runat="server"></FCKeditorV2:FCKeditor>
</form>
</body>
</HTML>
如果要看提交内容的话,可以用 TextBox1.Text = HttpUtility.HtmlEncode(FCKeditor1.Value)。
如果要修改保存的内容,这可以用HttpUtility.HtmlDecode(ds.Tables[tablename].Rows[0]["fginfo"].ToString())来回调用;