一、准备工作
首先下载最新版的FCKeditor V2.3,下载地址:http://prdownloads.sourceforge.net/fckeditor/FCKeditor_2.3.zip?download;这个压缩包里并不包含ASP.NET要用到的DLL控件,所以还要下载另外一个压缩包,下载地址:http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=137125。把第一个文件解压到WEB根目录,默认文件夹名为:FCKeditor;再把第二个包解压,里面包含了源代码,如果你想自己再次开发,可以双击 FredCK.FCKeditorV2.csproj文件,打开VS.NET进行修改,所用的语言是C#;不想修改的话,直接把bin/Release下面的FredCK.FCKeditorV2.DLL文件拷到WEB目录的bin下面。
二、精简文件
因为只用到ASP.NET,所以有必要精简一下文件。
进入FCKeditor文件夹,把所有“_”开头的文件和文件夹删掉,这些都是一些范例,只保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了;
进入editor文件夹,删掉“_source”文件夹,里面放的同样是源文件;
退回上一级目录进入filemanager文件夹,有browser和upload两个文件夹。进入browser/default/connectors,只保留aspx文件夹,其余的删掉;mcpuk目录亦可删除;upload也一样,只保留aspx文件夹;
退到editor再进入images文件夹,smiley里面放的是表情图标,有msn和fun两个系列,如果你想用自己的表情图标,可以把它们都删除;如果你想用这里的表情图标那就不要删了;
lang里面放的是语言包,如果只是用简体中文,那么只保留fcklanguagemanager.js、zh-cn.js两个文件就行了,建议也保留 en.js(英文)、zh.js(繁体中文)两个文件,fcklanguagemanager.js是语言配置文件,有了它才能和 fckconfig.js里的设置成对,对应上相应的语言文件,一定要保留!
再退出lang文件夹,进入skins文件夹,如果你想使用FCKeditor默认的奶黄色,那就把除了default文件夹外的另两个文件夹直接删除,如果想用别的,那就看你自己的喜好了,不要上传文件的话把filemanager也删除算了。
至此,文件精简完毕,由原来的2.55M变成现在的689K了。接着修改设置。
三、修改设置
打开位于根目录的fckconfig.js文件。
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;这行是设置皮肤的,如果精简时保留了silver,就把路径改成skins/silver,默认就不用管它了;
FCKConfig.DefaultLanguage = 'en' ;设置默认语言,把en改成zh-cn,即简体中文;
FCKConfig.TabSpaces = 0;如果在编辑过程中要用到TAB键,就把0改成1;
因为FCKeditor默认是ASP的,所以要把它换成ASP.NET。把ASP跟其它被注释掉的代码删掉,用ASP.NET来代替。例如:
var _FileBrowserLanguage = 'aspx'
var _QuickUploadLanguage = 'aspx'
余下的代码都按照以上操作,删掉其它WEB语言,只保留ASP.NET。也可以点这里下载我精简过的文件,注意:只适用于ASP.NET,其他语言勿下!建议先解压到别的目录,再复制到WEB目录相对应的位置,以免造成文件丢失。
改完后保存,FCKeditor已经完全支持ASP.NET了。当然还有一些安全问题,只要修改相应的toolbar,鼠标右键菜单等等,因为我的后台不面对前台用户的,即没有留言本和日记回复,所以略过这些步骤。下一步是打开VS.NET,在ASP.NET页面中加入FCKeditor。
四、ASP.NET中的应用
打开项目的“资源管理器”,添加“FredCK.FCKeditorV2”引用。
打开添加文章、管理文章相对应的文件以修改其中的内容。下面以“添加文章”为例。切换到“HTML”界面,添加FCK的引用,代码如下:
<%@ Register TagPrefix="FCKeditorV2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" %>
并确保@ Page中的“AutoEventWireup”“validateRequest”两个值都为false,不然当你发表的文章中含有链接或是其他 HTML语句时,.NET会警告你有安全隐患而出错。在form的适当位置加入FCKeditor控件,当然form一定要有“runat= "server"”,代码如下:
<FCKeditorV2:FCKeditor id="content" runat="server"></FCKeditorV2:FCKeditor>
id可以自己命名,自己喜欢易记就行。如果程序中有检测输入是否为空的话,那么就不再是content.Text了,而是content.Value。
至此,文件修改完毕。所有代码如下:
- <%@ Page language="c#" Codebehind="AdminFileAdd.aspx.cs" AutoEventWireup="false" Inherits="MyBlog.Admin.AdminFileAdd" validateRequest=false%>
- <%@ Register TagPrefix="FCKeditorV2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
- <HTML>
- <HEAD>
- <title>AdminFileAdd</title>
- <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
- <meta content="C#" name="CODE_LANGUAGE">
- <meta content="JavaScript" name="vs_defaultClientScript">
- <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
- <LINK href="admin.css" type="text/css" rel="stylesheet">
- </HEAD>
- <body class="right">
- <form id="Form1" method="post" runat="server">
- <div>添加文章</div>
- <div class="main">
- <ul>
- <li>
- 标题:<asp:textbox id="title" runat="server" MaxLength="50" Width="250px"></asp:textbox>
- <li>
- 栏目:<asp:dropdownlist id="m" runat="server" AutoPostBack="True"></asp:dropdownlist>
- <li>
- <FCKeditorV2:FCKeditor id="content" runat="server"></FCKeditorV2:FCKeditor>
- <li>
- <asp:button id="add" runat="server" Text="提 交"></asp:button>
- </li>
- </ul>
- </div>
- </form>
- </body>
- </HTML>