FCKeditor在asp.net中的用法

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、基本的属性设置已经差不多了,要设置更多请参考一下属性表:

  1. FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称   
  2. FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件   
  3. FCKConfig.EditorAreaStyles = '' ; // 编辑区的样式表风格   
  4. FCKConfig.ToolbarComboPreviewCSS =''; //工具栏预览CSS   
  5. FCKConfig.DocType = '' ;//文档类型   
  6. FCKConfig.BaseHref = ''; // 相对链接的基地址   
  7. FCKConfig.FullPage = false ; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容   
  8. FCKConfig.StartupShowBlocks = false ;//决定是否启用"显示模块"   
  9. FCKConfig.Debug = false ;//是否开启调试功能   
  10. FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //皮肤路径   
  11. FCKConfig.PreloadImages=... //预装入的图片   
  12. FCKConfigFCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径   
  13. FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言   
  14. FCKConfig.DefaultLanguage   = 'zh-cn' ; //默认语言   
  15. FCKConfig.ContentLangDirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左   
  16. FCKConfig.ProcessHTMLEntities = true ; //处理HTML实体   
  17. FCKConfig.IncludeLatinEntities = true ; //包括拉丁文   
  18. FCKConfig.IncludeGreekEntities = true ;//包括希腊文   
  19. FCKConfig.ProcessNumericEntities = false ;//处理数字实体   
  20. FCKConfig.AdditionalNumericEntities = '' ;   //附加的数字实体   
  21. FCKConfig.FillEmptyBlocks = true ; //是否填充空块   
  22. FCKConfig.FormatSource   = true ; //在切换到代码视图时是否自动格式化代码   
  23. FCKConfig.FormatOutput   = true ; //当输出内容时是否自动格式化代码   
  24. FCKConfig.FormatIndentator = '    ' ; //当在源码格式下缩进代码使用的字符   
  25. FCKConfig.StartupFocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上   
  26. FCKConfig.ForcePasteAsPlainText = false ; //是否强制粘贴为纯文件内容   
  27. FCKConfig.AutoDetectPasteFromWord = true ; //是否自动探测从word粘贴文件,仅支持IE   
  28. FCKConfig.ShowDropDialog = true ;//是否显示下拉菜单   
  29. FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体   
  30. FCKConfig.TabSpaces   = 0 ;//按下Tab键时光标跳格数,默认值为零为不跳格   
  31. FCKConfig.ShowBorders = true ;//合并边框   
  32. FCKConfig.SourcePopup = false ;//弹出   
  33. FCKConfig.ToolbarStartExpanded = true ;//启动fckeditor工具栏默认是否展开   
  34. FCKConfig.ToolbarCanCollapse = true ;//是否允许折叠或展开工具栏   
  35. FCKConfig.IgnoreEmptyParagraphValue = true ;//是否忽略空的段落值   
  36. FCKConfig.FloatingPanelsZIndex = 10000 ;//浮动面板索引   
  37. FCKConfig.HtmlEncodeOutput = false ;//是否将HTML编码输出   
  38. FCKConfig.TemplateReplaceAll = true ;//是否替换所有模板   
  39. FCKConfig.ToolbarLocation = 'In' ;//工具栏位置,   
  40. FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称   
  41. FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件   
  42. FCKConfig.BaseHref = ''; // 相对链接的基地址   
  43. FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容   
  44. FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤   
  45. FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言   
  46. FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言   
  47. FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右   
  48. FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代   
  49. FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码   
  50. FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码   
  51. FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符   
  52. FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记   
  53. FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器   
  54. FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本   
  55. FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体   
  56. FCKConfig.TabSpaces = 0/1; // TAB是否有效   
  57. FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数   
  58. FCKConfig.ShowBorders = true/false; // 是否合并边框   
  59. FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现   
  60. FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏   
  61. FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏   
  62. FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br   
  63. FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br   
  64. FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容   
  65. FCKConfig.FontColors = ""; // 文字颜色列表   
  66. FCKConfig.FontNames = ""; // 字体列表   
  67. FCKConfig.FontSizes = ""; // 字号列表   
  68. FCKConfig.FontFormats = ""; // 文字格式列表   
  69. FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置   
  70. FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置   
  71. FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器   
  72. FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址   
  73. FCKConfigFCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径   
  74. FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置   
  75. FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数   
  76. FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整   
  77. FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整   
  78. FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容   
  79. var _FileBrowserLanguage         = 'php' ;         // asp | aspx | cfm | lasso | perl | php | py      
  80. var _QuickUploadLanguage         = 'php' ;         // asp | aspx | cfm | lasso | php[/code]   
  81. //第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的   
  82. FCKConfig.LinkUploadAllowedExtensions         = "" ;                         // empty for all   
  83. FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"  
  84. //这是两个允许和拒绝上传的文件类型列表   
  85. FCKConfig.ImageBrowser = false ;是否在插入图片功能里面启用服务器文件浏览功能   
  86. FCKConfigFCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=ImageConnector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;   
  87. Type=Image   表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面   
  88. FCKConfig.FlashBrowser = false ;是否在插入flash功能中启用服务器文件浏览功能   
  89. FCKConfig.LinkUpload = false ;是否启用插入链接的快速上传功能   
  90. FCKConfig.ImageUpload = false ;是否启用图片快速上传功能   
  91. FCKConfig.FlashUpload = false ;是否启用flash上传功能   
  92.  文件浏览器的设置:   
  93. fckeditor/editor/filemanager/connectors/asp/config.asp   
  94. ConfigIsEnabled = true 决定是否启用文件浏览器。这个是在服务器上执行的   
  95. ConfigUserFilesPath = "/test/upload/" 上传文件的路径(相对的)   
  96. ConfigAllowedExtensions.Add         "File", ""   
  97. 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"   
  98. ConfigAllowedExtensions.Add         "Image", "jpg|gif|jpeg|png|bmp"   
  99. ConfigDeniedExtensions.Add         "Image", ""   
  100. ConfigAllowedExtensions.Add         "Flash", "swf|fla"   
  101. ConfigDeniedExtensions.Add         "Flash", ""   
  102. 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"   
  103. ConfigDeniedExtensions.Add         "Media", ""   
  104. 这是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了。

你可能感兴趣的:(FCKeditor在asp.net中的用法)