现在的位置: 首页 > 综合 > 正文

asp.net 2.0 下设置和使用FCKeditor文本编辑器

2013年05月27日 ⁄ 综合 ⁄ 共 2923字 ⁄ 字号 评论关闭

首先下载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())来回调用;

抱歉!评论已关闭.