FCKeditor不仅加上了FLASH插入功能,而且它的兼容性超强:支持多种浏览器包括IE 5.5+、Firefox 1.0+、Mozilla 1.3、Netscape 7+;无平台限制,在Windows、Mac、Linux下都能运行;可以和多种WEB语言融合包括:ASP.Net、ASP、PHP、ColdFusion、Java、Perl;多语言支持自带47种语言包;开源且免费;最重要的是支持XHTML1.0标准。
对于ASP网站,FCKeditor可以直接拿过来用了,不需要进行什么修改,因为FCKeditor默认就是ASP的。但有些设置并不适合自己使用,昨天对FCKeditor进行简单的修改,以便在ASP.NET网站的使用,仅供参考。
一、FCK控件的使用
1、准备工作
首先下载FCKeditor V2.4.3,下载地址:http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=75845;这个压缩包里并不包含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下面。
说明:
FCKeditor2.4.3.zip是其最新的文件和图片什么的;
FCKeditor.NET.zip是ASP.NET调用的DLL在里面。
2、分别解压后把FCKeditor2.4.3.zip里的fckeditor目录整个复制到网站中。
3、解压FCKeditor.NET.zip包后在FCKeditor.Net_2.3/bin/Release目录里找到FredCK.FCKeditorV2.dll,将FredCK.FCKeditorV2.dll添加到工具箱上。如图:
4、完了之后将控件拖到网页上。
5、现在已经完成了添加,现在要根据我们的需要来设置了……
进入FCKeditor文件夹,编辑 fckconfig.js 文件。
修改
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
6、 配置语言包。有英文、繁体中文等,这里我们使用简体中文。
修改
FCKConfig.DefaultLanguage = 'en' ;
为
FCKConfig.DefaultLanguage = 'zh-cn' ;
7、配置皮肤。有default、office2003、silver风格等,这里我们可以使用默认。
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
8、在编辑器域内可以使用Tab键。(1为是,0为否)
FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ;
9、加上几种我们常用的字体的方法
修改
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'
10、基本的属性设置已经差不多了,要设置更多请参考一下属性表:
- FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
- FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
- FCKConfig.EditorAreaStyles = '' ; // 编辑区的样式表风格
- FCKConfig.ToolbarComboPreviewCSS =''; //工具栏预览CSS
- FCKConfig.DocType = '' ;//文档类型
- FCKConfig.BaseHref = ''; // 相对链接的基地址
- FCKConfig.FullPage = false ; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
- FCKConfig.StartupShowBlocks = false ;//决定是否启用"显示模块"
- FCKConfig.Debug = false ;//是否开启调试功能
- FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //皮肤路径
- FCKConfig.PreloadImages=... //预装入的图片
- FCKConfigFCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径
- FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言
- FCKConfig.DefaultLanguage = 'zh-cn' ; //默认语言
- FCKConfig.ContentLangDirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左
- FCKConfig.ProcessHTMLEntities = true ; //处理HTML实体
- FCKConfig.IncludeLatinEntities = true ; //包括拉丁文
- FCKConfig.IncludeGreekEntities = true ;//包括希腊文
- FCKConfig.ProcessNumericEntities = false ;//处理数字实体
- FCKConfig.AdditionalNumericEntities = '' ; //附加的数字实体
- FCKConfig.FillEmptyBlocks = true ; //是否填充空块
- FCKConfig.FormatSource = true ; //在切换到代码视图时是否自动格式化代码
- FCKConfig.FormatOutput = true ; //当输出内容时是否自动格式化代码
- FCKConfig.FormatIndentator = ' ' ; //当在源码格式下缩进代码使用的字符
- FCKConfig.StartupFocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上
- FCKConfig.ForcePasteAsPlainText = false ; //是否强制粘贴为纯文件内容
- FCKConfig.AutoDetectPasteFromWord = true ; //是否自动探测从word粘贴文件,仅支持IE
- FCKConfig.ShowDropDialog = true ;//是否显示下拉菜单
- FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体
- FCKConfig.TabSpaces = 0 ;//按下Tab键时光标跳格数,默认值为零为不跳格
- FCKConfig.ShowBorders = true ;//合并边框
- FCKConfig.SourcePopup = false ;//弹出
- FCKConfig.ToolbarStartExpanded = true ;//启动fckeditor工具栏默认是否展开
- FCKConfig.ToolbarCanCollapse = true ;//是否允许折叠或展开工具栏
- FCKConfig.IgnoreEmptyParagraphValue = true ;//是否忽略空的段落值
- FCKConfig.FloatingPanelsZIndex = 10000 ;//浮动面板索引
- FCKConfig.HtmlEncodeOutput = false ;//是否将HTML编码输出
- FCKConfig.TemplateReplaceAll = true ;//是否替换所有模板
- FCKConfig.ToolbarLocation = 'In' ;//工具栏位置,
- FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
- FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
- FCKConfig.BaseHref = ''; // 相对链接的基地址
- FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容
- FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤
- FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言
- FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言
- FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右
- FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代
- FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码
- FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码
- FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符
- FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记
- FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器
- FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本
- FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体
- FCKConfig.TabSpaces = 0/1; // TAB是否有效
- FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数
- FCKConfig.ShowBorders = true/false; // 是否合并边框
- FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现
- FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏
- FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏
- FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br
- FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br
- FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容
- FCKConfig.FontColors = ""; // 文字颜色列表
- FCKConfig.FontNames = ""; // 字体列表
- FCKConfig.FontSizes = ""; // 字号列表
- FCKConfig.FontFormats = ""; // 文字格式列表
- FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置
- FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置
- FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器
- FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址
- FCKConfigFCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径
- FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置
- FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数
- FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
- FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整
- FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
- var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
- var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php[/code]
- //第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的
- FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
- FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"
- //这是两个允许和拒绝上传的文件类型列表
- FCKConfig.ImageBrowser = false ;是否在插入图片功能里面启用服务器文件浏览功能
- FCKConfigFCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=ImageConnector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
- Type=Image 表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面
- FCKConfig.FlashBrowser = false ;是否在插入flash功能中启用服务器文件浏览功能
- FCKConfig.LinkUpload = false ;是否启用插入链接的快速上传功能
- FCKConfig.ImageUpload = false ;是否启用图片快速上传功能
- FCKConfig.FlashUpload = false ;是否启用flash上传功能
- 文件浏览器的设置:
- fckeditor/editor/filemanager/connectors/asp/config.asp
- ConfigIsEnabled = true 决定是否启用文件浏览器。这个是在服务器上执行的
- ConfigUserFilesPath = "/test/upload/" 上传文件的路径(相对的)
- ConfigAllowedExtensions.Add "File", ""
- ConfigDeniedExtensions.Add "File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
- ConfigAllowedExtensions.Add "Image", "jpg|gif|jpeg|png|bmp"
- ConfigDeniedExtensions.Add "Image", ""
- ConfigAllowedExtensions.Add "Flash", "swf|fla"
- ConfigDeniedExtensions.Add "Flash", ""
- ConfigAllowedExtensions.Add "Media", "swf|fla|jpg|gif|jpeg|png|avi|mpg|mpeg|mp(1-4)|wma|wmv|wav|mid|midi|rmi|rm|ram|rmvb|mov|qt"
- ConfigDeniedExtensions.Add "Media", ""
- 这是4个不同的filetype类型 分别对应了 前台编辑器的 插入链接 插入图片 插入flash 插入媒体 4个功能
11、配置WebConfig,在<appSettings>节点添加,如下:
<appSettings>
<add key="FCKeditor:BasePath" value="/项目名称/fckeditor/"/>
<add key="FCKeditor:UserFilesPath" value="/项目名称/userfiles/" />
</appSettings>
BasePath是fckeditor所在路径,fckeditor由于我们直接放网站目录下这样写就可以,如果您的网站多放几层适当调整即可。UserFilesPath是所有上传的文件的所在目录。
12、aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" validateRequest="false" %>
我们要添加一个参数 validateRequest=false,否则提交带html代码的内容会报错
二、FCK控件的使用问题
1、FCKeditor出现"this connector is disabled Please check the"editor/filemanager/connectors/aspx/config.aspx"错误的解决办法
打开editor/filemanager/connectors/aspx/config.ascx修改CheckAuthentication()方法,返回true
C# code
view plaincopy to clipboardprint?
private bool CheckAuthentication()
{
// WARNING : DO NOT simply return "true". By doing so, you are allowing
// "anyone" to upload and list the files in your server. You must implement
// some kind of session validation here. Even something very simple as...
//
// return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );
//
// ... where Session[ "IsAuthorized" ] is set to "true" as soon as the
// user logs in your system.
return true;
}
private bool CheckAuthentication()
{
// WARNING : DO NOT simply return "true". By doing so, you are allowing
// "anyone" to upload and list the files in your server. You must implement
// some kind of session validation here. Even something very simple as...
//
// return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );
//
// ... where Session[ "IsAuthorized" ] is set to "true" as soon as the
// user logs in your system.
return true;
}
2、在上传文件窗口点击浏览服务器,会出现the server didn't send back a proper xml.....错误提示,因为后期版本的FCKEditor要求不同类型的文件分别传到不同的目录,包括file,image,falsh,media等目录,一定要先建立起来。
三、精简FCK控件
1、进入FCKeditor文件夹,把所有“_”开头的文件和文件夹删掉,这些都是一些范例,只保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了;
2、进入editor文件夹,删掉“_source”文件夹,里面放的同样是源文件;
3、退回上一级目录进入filemanager文件夹,有browser和upload两个文件夹。进入browser"default"connectors,只保留aspx文件夹,其余的删掉;mcpuk目录亦可删除;upload也一样,只保留aspx文件夹;
4、退到editor再进入images文件夹,smiley里面放的是表情图标,有msn和fun两个系列,如果你想用自己的表情图标,可以把它们都删除;如果你想用这里的表情图标那就不要删了;
5、lang里面放的是语言包,如果只是用简体中文,那么只保留fcklanguagemanager.js、zh-cn.js两个文件就行了,建议也保留en.js(英文)、zh.js(繁体中文)两个文件,fcklanguagemanager.js是语言配置文件,有了它才能和fckconfig.js里的设置成对,对应上相应的语言文件,一定要保留!
6、再退出lang文件夹,进入skins文件夹,如果你想使用FCKeditor默认的奶黄色,那就把除了default文件夹外的另两个文件夹直接删除,如果想用别的,那就看你自己的喜好了。
至此,文件精简完毕,由原来的2.55M变成现在的797K了。