本文所采用的FCKeditor版本是FCKeditor 2.6.4和FCKeditor.NET 2.6.3,都是当前FCKeditor的最新版本,在http://www.fckeditor.net上可以找到。

搞ASP.NET开发有一年时间了,做网站时常常用到在线HTML编辑器,一直用得是FCKeditor。FCKeditor在ASP.NET上的集成和配置,可以说搞得已经很清楚了。在网络上得到过很多前辈同仁们的帮助,现在把自己的一点经验贡献出来,帮助需要帮助的人。

原创作品,转载请注明出处。有不当的地方,敬请批评指正。

参考:
    舒健,在ASP.NET中如何使用FCKEditor,http://blog.csdn.net/fhbcn/archive/2008/05/10/2431559.aspx。(应该是转载的)
    三味书屋,FCKeditor使用方法,http://hi.baidu.com/howes/blog/item/529c7a8b6200bc16c8fc7ac5.html。
    fckeditor.net,ASP.NET Integration,http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Integration/ASP.NET。
    Mohannd Jahedur Rahman,Integrating FCKeditor in ASP.NET,http://www.blog.valenticabd.com/2008/07/20/integrating-fckeditor-in-aspnet.html。

一、集成方法
    FCKeditor应用在ASP.NET上,需要两组文件,一组是FCKeditor本身,另一个是用于ASP.NET的FCKeditor控件(分为1.1和2.0两个版本,这里使用2.0版本)。

1. 将FCKeditor加入到项目中
    解压FCKeditor编辑器,得到文件夹fckeditor,复制此文件夹到Web应用的项目下(也可以是子孙目录下)。
    解压FCKeditor控件,在其子目录bin/Release/2.0下有一个程序集。在Web应用的项目中引用该程序集。

2. 在页面中使用FCKeditor
    有两种方式。
    (1)手工编码
    在页面中加入ASP.NET指令:
        <%@ Register Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
    然后在需要的地方加入FCKeditor控件:
        <FCKeditorV2:FCKeditor id="FCKeditor1" runat="server" />
    (2)集成到Visual Studio工具箱
    打开一ASP.NET页面,展开Toolbox,打开右键菜单,选择“Choose Items ...”,在出现的“Choose Toolbox Items”会话框的“.NET Framework Components”选项卡中选择“Browse”,找到并选中FCKeditor程序集,打开后回到“Choose Toolbox Items”窗口,点击“OK”,完成控件导入。
    这时,在Toolbox的General分类下出现了一个名为FCKeditor的控件,可以像使用Visual Studio内置控件一样使用它。

3. 配置FCKeditor编辑器路径
    在页面中,使用的是FCKeditor控件,该控件需要知道FCKeditor编辑器文件组的路径。有两种配置方法。
    (1)配置web.config
    在appSettings配置节中加入
        <add key="FCKeditor:BasePath" value="~/PathOfFCKeditor/" />
    使用这种配置方法后,对于项目中任何一个页面中用到的FCKeditor控件,都不用再配置其BasePath属性。
    (2)直接对用到的FCKeditor控件进行配置
    在页面代码中设置FCKeditor的属性BasePath为FCKeditor编辑器文件组的路径,或者在Page_Init事件处理器中设置其BasePath的值。

4. 配置FCKeditor编辑器文件上传路径
    在web.config的appSettings配置节中加入
        <add key="FCKeditor:UserFilesPath" value="~/YourUploadFilePath" />
    
    这样,就完成了FCKeditor向ASP.NET页面的集成工作。

二、配置FCKeditor
    按照FCKeditor的默认配置,可以完成一些常用的HTML可视化编辑工作,但在实际应用中,还需要对其做进一步的配置。FCKeditor控件的可配置属性不多,且配置后只能作用于一个单一实例。实际上,需要对FCKeditor编辑器文件组中的通用配置文件/fckconfig.js和ASP.NET专用文件上传管理代码文件/editor/filemanager/connectors/aspx/config.ascx进行配置。
    
    1. 配置控件语言
    FCKeditor是自动探测浏览器所使用的语言编码的,其默认语言是英文。修改配置行"FCKConfig.DefaultLanguage    = 'en';"为'zh-cn',采用中文为默认语言。

2. 配置控件应用技术
    FCKeditor默认是用于php技术的。修改配置行"var _FileBrowserLanguage   = 'php';"和"var _QuickUploadLanguage    = 'php';"为'aspx',采用ASP.NET技术。

3. 配置Tab键
    默认Tab键在FCKeditor中不可用,可以修改配置行"FCKConfig.TabSpaces    = 0;"为1,启用Tab键。

4. 定制FCKeditor工具栏
    FCKConfig提供两种工具栏配置。在配置行"FCKConfig.ToolbarSets["Default"] = [ ... ];"中定义了使用全部可用按钮的配置(作为工具栏的默认配置)。在配置行"FCKConfig.ToolbarSets["Basic"] = [ ... ];"中定义了一个精简按钮的工具栏配置。实际使用时,默认配置按钮太多,精简配置按钮又太少。因此需要定制工具栏。
    配置值[ ... ]中是形式为[[v, v2, .., vN], '/', [ ... ],...](vN表示要显示的按钮名字,'/'表示之后的按钮组在下一行显示)的按钮分组的集合。如果不需要整个分组的按钮,那么就删掉该分组(形式为[ , , ...]);如果只是不需要分组中的某个按钮,删掉该按钮。

5. 定制可用的文本字体
    FCKeditor是外国人做的,默认使用的字体当然也是西文字体了。修改配置行"FCKConfig.FontNames = '...';",加入要使用的中文字体名,如宋体,楷体_GB2312等。
    FCKConfig默认使用HTML字体关键字来表示可选的字体大小,这存在着不同浏览器显示效果不一致的问题。因此,建议修改配置行"FCKConfig.FontSizes  = '...';",去掉字体关键字值,加入像素值或磅值。(当然,在网页里定义了全局样式表的话,就不需要修改这项设置了,但应该教会最终用户如何设置字体达到最佳显示效果。)

6. 启用文件上传
    FCKeditor提供了非常强大和易用的文件上传功能,但是默认配置里,文件上传功能不可用,这是基于安全的考虑。但我认为访问安全性控制应该由程序来做,不应由控件来做。
    在文件config.ascx中,修改CheckAuthentication()的返回值为true。如果希望上传具有多扩展名的文件,修改SetConfig()中ForceSingleExtension的值为false。FCKeditor默认可以上传文件、图片、Flash和多媒体四种类型的文件,可以在SetConfig()中对AllowedTypes修改来增减允许的类型(这个类型可以在后面的TypeConfig["TypeName"]中定义,比如在AllowedExtensions属性中定制本类型允许的上传文件扩展名,在DeniedExtensions里定制不允许的上传文件扩展名)。
    在文件fckconfig.js中,修改配置行"FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;"为FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=File&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;";修改配置行"FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;"为"FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=File' ;"。(在这个配置文件里,看起来似乎Type=File是作为默认参数的,但实际上不加这个参数的话,会出错。)
    
    7. 其它配置
    对于这两个配置文件中的配置属性,从名字上很容易知道它们所代表的含义,基本上都可以定制。但要注意,属性值的格式要正确。

三、将FCKeditor编辑器文件组ASP.NET化
    FCKeditor编辑器文件组包含了用于它所支持的各种应用技术的文件,所以,对于ASP.NET应用来说,有很多文件是不需要的。

根目录下,只保留文件夹editor,文件fckconfig.js、fckeditor.js、fckpackager.xml、fckstyles.xml和fcktemplates.xml。
    子目录editor/filemanager/connectors下,只保留文件夹aspx。

/

FckEditor配置手册中文教程详细说明

性能
首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入FCKEDITOR所需文件.对于其他在线编辑器来说,这几乎是个很难解决的难题,因为在开启编辑器时需要装载太多的文件.比如CUTEEDITOR,虽然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKEDITOR相比,尚有差距,可以说,FCKEDITOR是一个别具匠心的在线编辑器,它里面融入了作者高深的面向对象的JAVASCRIPT功力,集易用性与强大的功能与一体.

.与编辑器相关的所有图像,脚本以及调用页
.语言文件
.编辑器的皮肤文件
.工具样的贴图等
这些将导致在服务器和客户端间产生相当的流量.如果有许多文件被调用,那么即便每个文件很小.也会让用户等得不耐烦.
装载顺序
从2.0版开始,编辑器按以下步骤装载资源:
.基本页(就是编辑器所在页)以及装入编辑器的JS脚本
.用来建立编辑器的脚本
.编辑器的语言和皮肤.
.建立编辑器.
.载入预置的编辑文档内容.
.从现在开始,用户可以阅读和编辑文档了,不过,拖拽支持以及工具栏都是不可用的
.载入编辑器引擎脚本
.建立工具栏,并且可用
.从现在开始,编辑器的所有功能都已经完整
.载入工具栏图标

脚本压缩
在打包任何新版本时,编辑器的JS脚本将会进行预处理.预处理步骤如下:
.移除所有代码注释
.移除所有无用的空白字符.
.将脚本合并成几个文件
使用上面的方法,我们可以将脚本文件的大小压缩到原来的50%.
压缩后,原始的代码仍然存在于一个名为_Source的文件夹中

如何打包?
编辑器已经自带了打包程序,它位于FCKEDITOR的根文件夹中_PACKAGER文件夹中,名为Fckeditor.Packager.exe,将其复制到FCKEDITOR根文件夹中并运行,即可自动将JS脚本打包并压缩
需要注意的是该程序是一个.NET程序,必须安装.NET FRAMEWORK才能使用

想要获取支持?
如果你捐赠15000欧元,你就可以获得1年的免费技术支持(比较贵的说,相当于人民币15万,不过西欧的费用相当惊人)

如何安装?
1.下载最新版的FCKEDITOR
2.解压缩到你的站点根文件夹中名为FCKEDITOR的文件夹中(名称必须为FCKEDITOR,因为配置文件中已经使用此名称来标示出FCKEDITOR的位置)
3.现在,编辑器就可以使用了,如果想要查看演示,可以按下面方法访问:
http://<your-site>/FCKeditor/_samples/default.html
注意:你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称,请修改配置文件夹中编辑器BasePath参数,如下所示:
oFckeditor.BasePath="/Components/fckeditor/";
另外,FCKEDITOR文件夹中所有以下划线开头的文件夹及文件,都是可选的,可以安全的从你的发布中删除.它们并不是编辑器运行时必需的

如何将FCKEDITOR整合进我的页面?
由于目前的版本提供的FCKEDITOR仅提供了JAVASCRIPT式的整合,因此,这里仅讲述如何应用JAVASCRIPT来整合FCKEDITOR到站点中,当然,其他各种语言的整合,你可以参考_samples文件夹中的例子来完成
1,假如编辑器已经安装在你的站点的/FCKEDITOR/文件夹下.那么,第一步我们需要做的就是在页面的HEAD段中放入SCRIPT标记以引入JAVASCRIPT整合模块.例如:
<script type="text/javascript" src="/fckeditor/fckeditor.js"></script>
其中路径是可更改的
2,现在,FCKEDITOR类已经可以使用了.有两个方法在页面中建立一个FCKEDITOR编辑器:
方法1:内联方式(建议使用):在页面的FORM标记内需要插入编辑器的地方置入以下代码: 
script type="text/javascript">
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.Create() ;
</script>
方法2:TEXTAREA标记替换法(不建议使用):在页面的ONLOAD事件中,添加以下代码以替换一个已经存在的TEXTAREA标记
<html>
<head>
<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
</head>
<body>
<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
</body>
</html>
3.现在,编辑器可以使用了

FCKEDITOR类参考:
下面是用来在页面中建立编辑器的FCKEDITOR类的说明

构造器:
FCKeditor( instanceName[, width, height, toolbarSet, value] )
instanceName:编辑器的唯一名称(相当于ID)
WIDTH:宽度
HEIGHT:高度
toolbarSet:工具条集合的名称
value:编辑器初始化内容

属性:
instanceName:编辑器实例名
width:宽度,默认值为100%
height:高度,默认值是200
ToolbarSet:工具集名称,参考FCKCONFIG.JS,默认值是Default
value:初始化编辑器的HTML代码,默认值为空
BasePath:编辑器的基路径,默认为/Fckeditor/文件夹,注意,尽量不要使用相对路径.最好能用相对于站点根路径的表示方法,要以/结尾
CheckBrowser:是否在显示编辑器前检查浏览器兼容性,默认为true
DisplayErrors:是否显示提示错误,默为true;

集合:
Config[Key]=value;
这个集合用于更改配置中某一项的值,如
oFckeditor.Config["DefaultLanguage"]="pt-br";

方法:
Create()
建立并输出编辑器

RepaceTextArea(TextAreaName)
用编辑器来替换对应的文本框

如何配置FCKEDITOR?
FCKEDITOR提供了一套用于定制其外观,特性及行为的设置集.主配置文件名为Fckconfig.js
你既可以编辑主配置文件,也可以自己定义单独的配置文件.配置文件使用JAVASCRIPT语法.

修改后,在建立编辑器时,可以使用以下语法:
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.Config['CustomConfigurationsPath'] = '/myconfig.js' ;
oFCKeditor.Create() ;

提醒:当你修改配置后,请清空浏览器缓存以查看效果

配置选项: 
AutoDetectLanguage=true/false 自动检测语言
BaseHref="http://dszhang.blog.163.com/blog/" _fcksavedurl="""" 相对链接的基地址
ContentLangDirection="ltr/rtl" 默认文字方向
ContextMenu=字符串数组,右键菜单的内容
CustomConfigurationsPath="" 自定义配置文件路径和名称
Debug=true/false 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容
DefaultLanguage="" 缺省语言
EditorAreaCss="" 编辑区的样式表文件
EnableSourceXHTML=true/false 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML
EnableXHTML=true/false 是否允许使用XHTML取代HTML
FillEmptyBlocks=true/false 使用这个功能,可以将空的块级元素用空格来替代
FontColors="" 设置显示颜色拾取器时文字颜色列表
FontFormats="" 设置显示在文字格式列表中的命名
FontNames="" 字体列表中的字体名
FontSizes="" 字体大小中的字号列表
ForcePasteAsPlainText=true/false 强制粘贴为纯文本
ForceSimpleAmpersand=true/false 是否不把&符号转换为XML实体
FormatIndentator="" 当在源码格式下缩进代码使用的字符
FormatOutput=true/false 当输出内容时是否自动格式化代码
FormatSource=true/false 在切换到代码视图时是否自动格式化代码
FullPage=true/false 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
GeckoUseSPAN=true/false 是否允许SPAN标记代替B,I,U标记
IeSpellDownloadUrl=""下载拼写检查器的网址
ImageBrowser=true/false 是否允许浏览服务器功能
ImageBrowserURL="" 浏览服务器时运行的URL
ImageBrowserWindowHeight="" 图像浏览器窗口高度
ImageBrowserWindowWidth="" 图像浏览器窗口宽度
LinkBrowser=true/false 是否允许在插入链接时浏览服务器
LinkBrowserURL="" 插入链接时浏览服务器的URL
LinkBrowserWindowHeight=""链接目标浏览器窗口高度
LinkBrowserWindowWidth=""链接目标浏览器窗口宽度
Plugins=object 注册插件
PluginsPath="" 插件文件夹
ShowBorders=true/false 合并边框
SkinPath="" 皮肤文件夹位置
SmileyColumns=12 图符窗列数
SmileyImages=字符数组 图符窗中图片文件名数组
SmileyPath="" 图符文件夹路径
SmileyWindowHeight 图符窗口高度
SmileyWindowWidth 图符窗口宽度
SpellChecker="ieSpell/Spellerpages" 设置拼写检查器
StartupFocus=true/false 开启时FOCUS到编辑器
StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置
TabSpaces=4 TAB键产生的空格字符数
ToolBarCanCollapse=true/false 是否允许展开/折叠工具栏
ToolbarSets=object 允许使用TOOLBAR集合
ToolbarStartExpanded=true/false 开启是TOOLBAR是否展开
UseBROnCarriageReturn=true/false 当回车时是产生BR标记还是P或者DIV标记

如何自定义样式列表呢?
FCKEDITOR的样式工具栏中提供了预定义的样式,样式是通过XML文件定义的,默认的XML样式文件存在于FCkEditor根文件夹下的FckStyls.xml文件中
这个XML文件的结构分析如下:
<?xml version="1.0" encoding="utf-8" ?>
<Styles >
<Style name="My Image" element="img">
<Attribute name="style" value="padding: 5px" />
<Attribute name="border" value="2" />
</Style >
<Style name="Italic" element="em" />
<Style name="Title" element="span">
<Attribute name="class" value="Title" />
</Style >
<Style name="Title H3" element="h3" />
</Styles>

每一个STYLE标记定义一种样式,NAME是显示在下拉列表中的样式名,ELEMENT属性指定此样式所适用的对象,因为FCKEDITOR中的样式是上下文敏感的,也就是说,选择不同的对象,仅会显示针对这类对象定义的样式

拼写检查
FCKEDITOR带了两种拼写检查工具,一种是ieSpell,默认情况下使用这种,使用这种方式的拼写检查,要求客户下载并安装iespell这个小软件,另外,也提供SpellPager的方式来进行拼写检查,不过,由于SPELLPAGER是由PHP编写的服务器端脚本,因此,要求你的WEB服务器必须支持PHP脚本语言方可
更改拼写检查器的方式请参见有关配置文件的详细说明

压缩脚本
为了提供脚本载入的效率,FCKEDITOR采用以下方法对脚本尽量压缩以减少脚本尺寸:
1,移除掉脚本中的注释
2.移除掉脚本中所有无意义的空白
另外,FCKEDITOR还提供了一个专门用于压缩脚本的工具以便 你在发布时能减小文件尺寸,
你可以将_Packager文件夹中的Fckeditor.Packager.exe复制到FCKEDITOR根文件夹来运行并压缩脚本

本地化FCKEDITOR
如果FCKEDITOR没有提供您所需要的语言(实际上全有了),你也可以自行制作新的语言
,你只需要复制出EN.JS,然后在其基础上进行翻译.另外,语言名称与对应的脚本文件名必须遵循RFC 3066标准,但是,需要小写,例如:Portuguess Language对应的脚本文件名必须为pt.js
如果需要针对某个国家的某种语系,则可以在语系缩写后加上横线及国家缩写即可

在使用时,系统会自动侦测客户端语系及国别而运用适当的界面语言.

当建立一种新的语言后,你必须在"Edit/lang/fcklanguagemanager.js"中为其建立一个条目,如下所示:
FCKLanguageManager.AvailableLanguages = 
{

en : 'English',
pt : 'Portuguese' 
}

需要提醒的是,文件必须保存为UTF-8格式

如何与服务器端脚本进行交互?
请查看例子以得到相关内容

另外,在ASP.NET中以以下步骤使用
1.把FCKEDITOR添中到工具箱
2.托拽FCKEDITOR控件到页面
3.为其指定名称
4.FCKEDITOR类的所有属性不光可以在代码中使用,而且可以作为FCKEDITOR控件的属性直接使用,例如,要改变皮肤,可以在UI页面中指定SkinPath="/fckeditor/editor/skins/office2003"即可,其实FCKEDITOR的ASP.NET版本可以做得更好,你可以找到FCKEDITOR ASP.NET 2.1的源文件,然后修改该控件的设计,为其暴露更多有用的属性,重新编译即可
5,POSTBACK后的数据,使用FCKEDITOR控件的value属性获得
6.由于默认状态下,ASP.NET不允许提交含有HTML及JAVASCRIPT的内容,因此,你必须将使用FCKEDITOR的页面的ValidateRequest设为false.(<%@page validteRequest="false" %>即可)

附:
一、如何设置上传文件语言

把FCKeditor根目录下面的fckconfig.js文件里

var _FileBrowserLanguage    = 'asp' ;    // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage    = 'asp' ;    // asp | aspx | cfm | lasso | php

这两行中改成您所需要调用的编辑器语言,如用asp.net则改为aspx;

二、解决中文的问题:
在web.config中加入:
<globalization requestEncoding="GB2312" responseEncoding="GB2312"/>
这样设置后可以显示中文的文件,但URL地址也是中文的;
如果服务器对中文地址的解析不好,可能导致图片无法浏览;
所以修改:editor\filemanager\browser\default\frmresourceslist.html
中的OpenFile函数,把
window.top.opener.SetUrl( fileUrl ) ; 
修改为:
window.top.opener.SetUrl( escape(fileUrl) ) ;

三.设置上传的目录:
1:在web.config中设置:
 <appSettings>
     <add key="FCKeditor:UserFilesPath" value="/fck/UpLoad/" />
 </appSettings>

2:在Session中设置:
在editor\filemanager\browser\default\connectors\aspx\connector.aspx中加入以下代码:
<script runat="server" language="C#">
 protected override void OnInit(EventArgs e)
 {
  Session["FCKeditor:UserFilesPath"] = "/fck/UpLoad1/";
 }
</script>

如何在asp.net中动态设置上传图片的路径?

1.在javascript中修改FCKConfig.ImageBrowserURL的值,修改方式如下:
 FCKConfig.ImageBrowserURL += "?Path=要上传的文件路径";
 如:要把文件上传到站点根目录的UploadFile文件夹中,则设置为:
 FCKConfig.ImageBrowserURL += "?Path=/UploadFile";
2.在"editor\filemanager\browser\default\connectors\aspx\connector.aspx"文件最后中增加以下程序:
<script runat="server" language="C#">
    protected override void OnInit(EventArgs e)
    {
 if( Request.QueryString["Path"]==null ){
  Session["FCKeditor:UserFilesPath"] = "/UpLoadFiles/"; //设置默认值
 }else{
  Session["FCKeditor:UserFilesPath"] = Request.QueryString["Path"];
 }
    }
</script>


多环境下的配置和使用技巧


在fckeditor中添加右键菜单
现在网上介绍FCKEditor如何配置,如何精简的例子非常之多,如有需要可以google一下,此处不必赘述。现在介绍一下,如何自定义此编辑器,暂包括如何添加工具条上的item,产生响应,添加右键菜单。IT SEEMS VERY EASY!

闲言少叙,书归正传。
一、自定义右键菜单:
1、 首先,在editor/lang/zh-cn.js里添加你所要添加的工具条item的名字,此文件定义了一个FCKLang变量,仿照里边的格式写哦,如:First: "第一",注意,如果是不在倒数第二行(倒数第一行是“}”),后边的这个逗号是一定要有的,不然网页中不会出现编辑器,笔者曾经犯过如此低级的错误,待醒悟后,找一僻静之所大嘴巴子招呼;呵呵,我们是中国人,自然在冒号后对应汉语,这也是将来在网页中显示的内容。
2、 之后,在editor/_source/internals/fckcommands.js 里新建一个command:case 'First': oCommand = new FCKFirstCommand ( 'First', FCKLang.First); break注意那个红色字体的FCKFirstCommand了么?这个是一个自定义的command,稍候将讨论它。
3、 然后,在editor/_source/internals/fckcontextmenu.js 添加一个context menu 。 在case 'Generic' : 下面添加如下: oGroup.Add( new FCKContextMenuItem( this, 'First', FCKLang.First, true ) ) ; 其中第四个布尔类型的参数,如果指定为true,说明菜单有图标,反之则无。在此,我指明了我所自定义的菜单是有图标的,那么我就应该把图标放在editor\skins\xxx\toolbar目录下,其中xxx就是你在你的配置文件里选择的编辑器的皮肤,但是我们的图标命名可是有学问的,必须是如FCKContextMenuItem构造函数(且这么叫它)第二个字符串参数的小写字母形式,如,这里我的图标被命名为first.gif了。 Ok,如此右键菜单就被添加上去了,运行你的网页,看看FCKEditor是否奏效?如果不奏效的话就要重新参考此文喽^_^。
4、然后,还有最关键的一步:用editor下的fckeditor.original.html网页的内容代替fckeditor.html的内容,同时不要忘记备份fckeditor.html文件!
5、现在开始讨论步骤2中的FCKFirstCommand。菜单添加上其了,你总得让丫拥有什么功能吧?好,在editor/_source/commandclasses/fck_othercommands.js里新建这个类:

四大 FCKeditor 实战应用技巧

一般建立好类后,还要建立两个静态函数:xxx .prototype.Execute,xxx .prototype.GetState。前者是事件处理函数,即点击了该右键菜单所要执行的功能全部写在这个函数,后者返回菜单的状态(可用?不可用?)。在此为了演示,我们实现一个最简单的功能: FCKPageCommand.prototype.Execute = function(){ window.alert("It works!");}够简单吧,只是不疼不痒的弹出一个提示框。 当然,这里我们也可以不用自定义的FCKFirstCommand,而直接用FCKEditor定义好的command,比如FCKDialogCommand,它也定义在fck_othercommands.js里,当然如果这样的话,弹出的会是一个dialog。 再次运行网页,右击,点击你的自定义菜单,是否弹出提示框呢?

FCKeditor至今已经到了2.3.1版本了,对于国内的WEB开发者来说,也基本上都已经“闻风知多少”了,很多人将其融放到自己的项目中,更有很多大型的网站从中吃到了甜头。今天开始,我将一点点的介绍自己在使用FCKeditor过程中总结的一些技巧,当然这些其实是FCK本来就有的,只是很多人用FCK的时候没发现而已 :P

  1、适时打开编辑器

  很多时候,我们在打开页面的时候不需要直接打开编辑器,而在用到的时候才打开,这样一来有很好的用户体验,另一方面可以消除FCK在加载时对页面打开速度的影响,如图所示

  点击“Open Editor"按钮后才打开编辑器界面

  实现原理:使用JAVASCRIPT版的FCK,在页面加载时(未打开FCK),创建一个隐藏的TextArea域,这个TextArea的name和ID要和创建的FCK实例名称一致,然后点击"Open Editor"按钮时,通过调用一段函数,使用FCK的ReplaceTextarea()方法来创建FCKeditor,代码如下

<script type="text/javascript"> 
     <!-- 
     function showFCK(){ 
      var oFCKeditor = new FCKeditor( 'fbContent' ) ; 
      oFCKeditor.BasePath = '/FCKeditor/' ; 
      oFCKeditor.ToolbarSet = 'Basic' ; 
      oFCKeditor.Width = '100%' ; 
      oFCKeditor.Height = '200' ; 
      oFCKeditor.ReplaceTextarea() ; 
     } 
     //--> 
     </script> 
     <textarea name="fbContent" id="fbContent"><textarea>

2、使用FCKeditor 的 API

  FCKeditor编辑器,提供了非常丰富的API,用于给End User实现很多想要定制的功能,比如最基本的数据验证,如何在提交的时候用JS判断当前编辑器区域内是否有内容,FCK的API提供了GetLength()方法;

  再比如如何通过脚本向FCK里插入内容,使用InsertHTML()等;

  还有,在用户定制功能时,中间步骤可能要执行FCK的一些内嵌操作,那就用ExecuteCommand()方法。

  详细的API列表,请查看FCKeditor的Wiki。而常用的API,请查看FCK压缩包里的_samples/html/sample08.html。此处就不贴代码了。

3、外联编辑条(多个编辑域共用一个编辑条)

  这个功能是2.3版本才开始提供的,以前版本的FCKeditor要在同一个页面里用多个编辑器的话,得一个个创建,现在有了这个外联功能,就不用那么麻烦了,只需要把工具条放在一个适当的位置,后面就可以无限制的创建编辑域了,如图:

  要实现这种功能呢,需要先在页面中定义一个工具条的容器:<divid="xToolbar"></div>,然后再根据这个容器的id属性进行设置。

  ASP实现代码:  

<div id="fckToolBar"></div>  
<%  
Dim oFCKeditor  
Set oFCKeditor = New FCKeditor  
with oFCKeditor  
.BasePath = fckPath  
.Config("ToolbarLocation") = "Out:fckToolBar"

.ToolbarSet = "Basic"  
.Width = "100%"  
.Height = "200"

.Value = ""  
.Create "jcontent"

.Height = "150"  
.Value = ""  
.Create "jreach"  
end with  
%>

  JAVASCRIPT实现代码

<div id="xToolbar"></div>  
FCKeditor 1:  
<script type="text/javascript">  
<!--  
// Automatically calculates the editor base path based on the _samples directory.  
// This is usefull only for these samples. A real application should use something like this:  
// oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value.  
var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;

var oFCKeditor = new FCKeditor( 'FCKeditor_1' ) ;  
oFCKeditor.BasePath = sBasePath ;  
oFCKeditor.Height = 100 ;  
oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;  
oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using FCKeditor.' ;  
oFCKeditor.Create() ;  
//-->  
</script>  
<br />  
FCKeditor 2:  
<script type="text/javascript">  
<!--  
oFCKeditor = new FCKeditor( 'FCKeditor_2' ) ;  
oFCKeditor.BasePath = sBasePath ;  
oFCKeditor.Height = 100 ;  
oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;  
oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using FCKeditor.' ;  
oFCKeditor.Create() ;  
//-->  
</script>

  此部分的详细DEMO请参照:
_samples/html/sample11.html
_samples/html/sample11_frame.html

4、文件管理功能、文件上传的权限问题

  一直以后FCKeditor的文件管理部分的安全是个值得注意,但很多人没注意到的地方,虽然FCKeditor在各个Release版本中一直存在的一个功能就是对上传文件类型进行过滤,但是她没考虑过另一个问题:到底允许谁能上传?到底谁能浏览服务器文件?

  之前刚开始用FCKeditor时,我就出现过这个问题,还好NetRube(FCKeditor中文化以及FCKeditor ASP版上传程序的作者)及时提醒了我,做法是去修改FCK上传程序,在里面进行权限判断,并且再在fckconfig.js里把相应的一些功能去掉。但随之FCK版本的不断升级,每升一次都要去改一次配置程序fckconfig.js,我发觉厌烦了,就没什么办法能更好的控制这种配置么?事实上,是有的。

  在fckconfig.js里面,有关于是否打开上传和浏览服务器的设置,在创建FCKeditor时,通过程序来判断是否创建有上传浏览功能的编辑器。首先,我先在fckconfig.js里面把所有的上传和浏览设置全设为false,接着我使用的代码如下:

  ASP版本:

<%  
Dim oFCKeditor  
Set oFCKeditor = New FCKeditor  
with oFCKeditor  
.BasePath = fckPath  
.Config("ToolbarLocation") = "Out:fckToolBar"  
if request.cookies(site_sn)("issuper")="yes" then  
.Config("LinkBrowser") = "true"  
.Config("ImageBrowser") = "true"  
.Config("FlashBrowser") = "true"  
.Config("LinkUpload") = "true"  
.Config("ImageUpload") = "true"  
.Config("FlashUpload") = "true"  
end if  
.ToolbarSet = "Basic"  
.Width = "100%"  
.Height = "200"  
.Value = ""  
.Create "jcontent"  
%> 

  JAVASCRIPT版本:

      var oFCKeditor = new FCKeditor( 'fbContent' ) ; 
      <%if power = powercode then%> 
      oFCKeditor.Config['LinkBrowser'] = true ; 
      oFCKeditor.Config['ImageBrowser'] = true ; 
      oFCKeditor.Config['FlashBrowser'] = true ; 
      oFCKeditor.Config['LinkUpload'] = true ; 
      oFCKeditor.Config['ImageUpload'] = true ; 
      oFCKeditor.Config['FlashUpload'] = true ; 
      <%end if%> 
      oFCKeditor.ToolbarSet = 'Basic' ; 
      oFCKeditor.Width = '100%' ; 
      oFCKeditor.Height = '200' ; 
      oFCKeditor.Value = '' ; 
      oFCKeditor.Create() ;
FCKPageCommand.prototype.Execute = function() 

              window.alert("It works!"); 
}

FCKeditor在ASP环境中配置使用

先说一下我的测试环境:XPSP2,IIS5.1,FCKeditor2.0

在IIS上建立一个新的站点,我直接取名为FCKeditor
在DW里建立一个相对应的站点,测试服务器为本机,支持VBScript
下载FCKeditor2.0,这个东西是开源的,网上能下到的地方很多,自己找去……

下载下来的应该是压缩包,解压到FCKeditor站点根目录,什么都不需要更改,直接就可以开始调用了。等你会了的时候,会发现简单得要死去!

在站点根目录下,新建一个index.asp页面,<body>段内加如下代码(调用编辑器):

<% 
Dim oFCKeditor
 Set oFCKeditor = New FCKeditor
 oFCKeditor.BasePath = "/FCKeditor/"  //设置编辑器的路径,我站点根目录下的一个目录
 oFCKeditor.ToolbarSet = "Default"
 oFCKeditor.Width = "100%"
 oFCKeditor.Height = "600"

oFCKeditor.Value = "" //这个是给编辑器初始值
 oFCKeditor.Create "logbody" //以后编辑器里的内容都是由这个logbody取得,命名由你定

%>

加了这一段别忘了在index.asp前面第二行加上

<!--#include file="FCKeditor/fckeditor.asp" -->

把fckeditor.asp包含进来。切记切记!

就这么简单!

现在你只要把这个编辑器当成一个控件来使用,提取它的数据时用:request("logbody")

现在松口气吧。测试成功了。里面有些设置,去网上找些高级的使用说明来看吧。

FCKeditor使用初步

作者:柠檬园主

  FCKeditor 2.0版终于出来了,之所以用“终于”这个词,是因为在这一版本上加上了众望所归的FLASH插入功能。可以说在所有的在线编辑器中,FCKeditor是目前互联网上最好的编辑器,功能强大,支持多种浏览器,无平台限制,可以和多种WEB语言融合,多语言支持,开源等~~

  对于一个全新的网站,FCKeditor就可以直接拿过来用了,不需要进行什么修改。但是对于绝大多数的已有网站而言,FCKeditor的一些设置并不适合自己的使用,这篇文章旨在告诉你简单的修改FCKeditor以方便您的网站的使用。

  第一项工作就是对这个功能宏大的编辑器进行精简,当然是文件精简而非功能精简化。在这里我以asp版的FCKeditor为例进行,进入到FCKeditor 2.0文件夹下,先把以“_”为开头的文件夹统统删除,这些文件夹里放的是范例或是一些其它工具。其实也就是只保留editor文件夹、fckconfig.js、fckeditor.asp、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了,最外层的精简化完毕,进入到editor文件夹内,先把“_source”文件夹删除,这里是一些源文件,对于使用来说没什么用处。

  进入images文件夹,删除smiley文件夹,些文件是放表情图标的,由于接下来我会用我自己的表情图标,先把他们的删除,当然,如果你想用这里的表情图标那就不要删掉了。退出 images再进入lang文件夹内,这里的东西可以来个大清洗了,只保留fcklanguagemanager.js、zh-cn.js、en.js、zh.js这四个文件,第一个文件是语言配置文件,有了它才能和fckconfig.js里的设置成对对应上相应的语言文件,zh-cn.js是简体中文语言包,en.js就不用说了吧,zh.js是繁体中文的。怎么样?一下子少了几百K,爽吧~

  再退出lang文件夹,进入skin文件夹,如果你想使用fckeditor默认的这种奶黄色,那就把除了default文件夹外的另两个文件夹直接删除,如果想用别的,那就自己考虑了,不过我给你个建议,如果不想用默认的,那就选那个silver,因为银色也就是灰色和任何颜色配起来都不会难看,而那个office2003的皮肤,反正我是非常不喜欢的,并且图片相对也比较大,又增加了下载时间,不要!

  精简的最后一步,退出skin文件夹,再进入filemanager,如果你用的不是最新版的fckeditor的话,那这里就一个文件夹browser,新版的还有一个upload文件夹。一个个来,先进入到filemanager/browser/default/connectors/下,因为我是用的asp的,所以除asp文件夹外,全部删除。然后再进入filemanager/upload/下,同样,只留asp文件夹,至此,编辑器的精简化已经结束了,接下来,我们对编辑器进行设置修改。

  第一个修改的文件,也就是fckeditor总配置文件,位于根目录下的fckconfig.js文件。请根据下面的列表进行(以fckeditor 2.0版的为准):

找到第20行 FCKConfig.DefaultLanguage  = 'en' ;改为 FCKConfig.DefaultLanguage  = 'zh-cn' ;设置默认语言为简体中文
找到第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还支持编辑域内的鼠标右键功能。
找到第73行 
FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
 
这也是我改过的把鼠标右键的“链接、图像,FLASH,图像按钮”功能都去掉。

找到 第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' ;

  接下来就设置上传功能了,还是以ASP为例,其实fck默认的就是asp的,把100行以下的所有被注释掉的代码全部删掉就行,然后再把下面所有有关于browser.html和upload.asp的后面的?Type=XX都改成Type=YY,其中YY为你想保存文件的文件夹名称。

  而如果你还想用自己的表情图标的话,那跳到131行,改掉那个表情图标的文件夹地址,以及下面的表情图标的文件名,再下面那三个数字是每行显示表情数及弹出窗口的宽和高了,这个的大小要根据您的表情图标排列的窗口的大小而定了。OK,总配置文件修改结束。

  接下来是编辑器位置的设置,我的习惯是把editor放在根目录下,最开始所述的五个文件也放在根目录下(Tips:建议放在根目录下,并且建议使用时设置路径也采用绝对路径,如"/fckeditor/",而我的习惯的设置是"/"),这样有利于fckeditor的更新升级,并且网站下所有文件夹都可以任意调用,不存在其它文件夹名变了而其它地方就无法使用编辑器的问题。

  打开fckeditor.asp文件,找到  sBasePath  = "/fckeditor/"改为  sBasePath  = "/"
  打开fckeditor.js文件,找到  this.BasePath  = '/fckeditor/' ;改为  this.BasePath  = '/' ;

  编辑器域内默认的显示字体为12px,而我的主页默认字体为14px,所以看着就很不舒服,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,把第4行改为  font-size: 14px;即可。

  接下来就是上传文件的设置了,这个比较麻烦,请仔细操作。

  打开\editor\filemanager\browser\default\frmresourcetype.html,找到第15行,插入“ ['uploadfile','uploadfile'],”配合上刚才在fckconfig.js里的设置,那么我的上传文件路径就是/uploadfile,当然你也可以改成你想要的文件夹,但这里的名称一定要和fckconfig.js里的那个“Type=YY”里的YY一致才行。

  还没完,继续进入到editor\filemanager\browser\default\connectors\asp,打开config.asp,先把ConfigIsEnabled = False改成为ConfigIsEnabled = True,要不是没法上传文件的,再把ConfigUserFilesPath = "/UserFile"改成我想要的ConfigUserFilesPath = "/"。
  接着在“Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )”后面加入ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""
同理,这里的设置也是要和上面以及fckconfig.js里面对应的。

  还有一个上传,就是快速上传,这个功能是在fckeditor 2.0里才有的,以前的版本没这个功能。进入\editor\filemanager\upload\asp,同样打开config.asp,也同样的把ConfigIsEnabled = False 设置成 ConfigIsEnabled = True,我这里把ConfigUserFilesPath = "/UserFiles/"改成我想要的 ConfigUserFilesPath = "/uploadfile/"& Year(Date()) &"-"& Month(Date()) &"/",因为我的上传文件是放在uploadfile文件夹下,并且是按月分开放置的。快速上传,不会让你选择文件夹,而是通过这里的设置直接上传的,这儿设置如果和前面的设置配合不好的话,你的文件就会被上传得乱七八糟,很不方便管理。接前重复前一个config.asp里的操作,在后面加上
ConfigAllowedExtensions.Add "uploadfile", ""
ConfigDeniedExtensions.Add "uploadfile", ""

  接下来呢,就讲一下如何创建自己的在线编辑器,这里以ASP和JS版的为例,ASP版示例代码,一般用于后台操作:

<%
 Dim oFCKeditor
 Set oFCKeditor = New FCKeditor
 oFCKeditor.BasePath = "/"

oFCKeditor.ToolbarSet = "Default"
 oFCKeditor.Width = "100%"
 oFCKeditor.Height = "400"

oFCKeditor.Value = rs("logbody")
 oFCKeditor.Create "logbody"
 %>

  ASP版的,当然只能用在以.asp为扩展名的页面中,如果你在前在fckedito.asp里设置过BasePath为"/"的话,这里就可以省掉第三行,ASP版的只有一个Create函数。建议在修改一篇内容时用ASP版的。

接下来看JS版的:

<script type="text/javascript">
 var oFCKeditor = new FCKeditor( 'logbody' ) ;
 oFCKeditor.BasePath = '/' ;
 oFCKeditor.ToolbarSet = 'Basic' ;
 oFCKeditor.Width = '100%' ;
 oFCKeditor.Height = '400' ;
 oFCKeditor.Value = '' ;
 oFCKeditor.Create() ;
 </script>

  BasePath的设置同上所述,JS版的可用于任何网页中,甚至用于html页面,因为其是客户端生成的,这样的好处就是一可以减小网络流量,因为编辑器文件只需下载一次,二是可以由客户端定义什么时候显示,由于fckeditor初始化需要一定时间,在这一点上JS就很有作用了。

另外,JS版的还有一个功能函数就是ReplaceTextarea()函数,可以替换指定的TextArea,拿我的网站的日志的回复部分示例:

<script type="text/javascript">
     <!--
     function showFCK(){
     var oFCKeditor = new FCKeditor( 'fbContent' ) ;
     oFCKeditor.BasePath = '/' ;
     oFCKeditor.ToolbarSet = 'Basic' ;
     oFCKeditor.Width = '100%' ;
     oFCKeditor.Height = '200' ;
     oFCKeditor.Value = '' ;
     //oFCKeditor.Create() ;
     oFCKeditor.ReplaceTextarea() ;
     //document.blog_feedback.blogsubmit.disabled = '';
     document.blog_feedback.blogsubmit.style.display = '';
     document.blog_feedback.openFCK.disabled = 'true';
     document.blog_feedback.openFCK.style.display = 'none';
     }
     //-->
     </script>

把其写成一个简单的函数,当用户显示打开编辑器时才生成这个fckeditor,不用每次刷新页面都去初始化一个编辑器,页面的速度就会快多了。

补遗:前面讲到了,说是在编辑已有数据内容时不要用JS版的,那是因为单引号(')的问题造成的,在数据内容里难免会有单引号存在而用JS版生成编辑器时可能就会因为单引号问题,而使编辑器无法正常生成,而采用asp则不同,用ASP版本的是因为数据被当成是一个变量了,然后直接赋值给编辑器域。还有就是除非你要用ReplaceTextArea()方法来生成编辑器,否则你不需先写一个<textarea>这样的标签,一切都会由fckeditor自动生成的,你所需做的只是给fckeditor指定一个实例名。同时你也不用担心如何提交,在表单提交的时候,fckeditor会自动提交,提交的变量名是以你指定的fckeditor实例命名的。

FCKEditor在Asp.net环境下的配置安装
不知道大家留意到没有了:

  • FreeTextbox 不开源了,虽然我还有它以前的开源版本。
  • CSDN用的这个在线编辑器很优秀。
  • 它的名字叫做FCKEditor
  • 它是开源的
  • 与平台无关,最起码能支持 Asp, Asp.net , PHP

  以前我一直用FreeTextBox(主要是从Community Server那里知道的)。但是发现它并不是想象中好用,主要是上传图片没有弄好。好了好了,言归正传,说说我们今天的主角,FCKEditor,怎么在Asp.net中部署吧。

  首先,他的网站下载吧。这里要注意,你要下载两个ZIP文件,一个是Core,即核心文件,里面是整个FCKEditor的核心。第二个是For .net的组件。为了描述方便,我将真实文件名附上,以后要自己灵活修改啊。

  下载的核心文件叫FCKeditor_2.3.1.zip

  For .net 的文件叫FCKeditor.Net_2.2.zip

  部署步骤:

  解压FCKeditor_2.3.1.zip,将里面的FCKEditor复制到你的IIS主目录里面,其实要的效果是能够这样访问到就可以了 http://localhost/Fckeditor/ ,将http://localhost/Fckeditor/fckconfig.js的变量:

  _FileBrowserLanguage,_QuickUploadLanguage 的值改为 aspx,不难做吧。

  (可选)将复制好的FCKEditor里的以 '_' 开头的文件及文件夹删除,当然如果你是在开发也可以不删除,里面都是示例及调试页面。

  解压缩FCKeditor.Net_2.2.zip,然后在VS.net 2003中添加新的控件那样添加,bin\Release\FredCK.FCKeditorV2.dll 这个文件,呵呵,以后你就可以随便拖放这个控件了。

  (重要)将上面的DLL文件复制到 http://localhost/FCKeditor/editor/filemanager/upload/aspx/bin/

  然后在IIS设置中让 http://localhost/FCKeditor/editor/filemanager/upload/aspx/ 这个目录可以运行Aspx。同样,http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/ 也要重复上面的过程。

  另外一种更加简单的方法是将FredCK.FCKeditorV2.dll 复制 http://localhost/FCKeditor/bin/ 目录下,然后在IIS中创建应用程序。

  这一步的目的是让:

  http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx

  http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx

  这两个文件能够工作。

  好了,到此为止,你在aspx也里面拖入FCKEditor,将BasePath 设置为 /FCKEditor/就可以用了。

如果:

  http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx 工作不正常

  你在浏览服务器时,就会有XML Request Error:XXXXXXXXXXXXXX(500)错误。

  http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx

  你在上传图片时,按钮怎么按都没有反应的。

在jsp环境中配置使用FCKEditor

FCKeditor是sourceforge.net上面的一个开源项目,主要是实现在线网页编辑器的功能,可以让web程序拥有如MS Word这样强大的编辑功能。官方网站为http://www.fckeditor.net ,在服务器端支持ASP.Net、ASP、ClodFusion、PHP、Java等语言,并且支持IE 5+、Mozilla 、Netscape等主流浏览器。

  首先在官方网站下载fckeditor,注意有两个包,一个是主文件,一个是jsp整合包的。

  1、解压FCKeditor_2.2.zip,(FCKeditor主文件),将FCKeditor目录复制到网站根目录下,

  2、解压FCKeditor-2.3.zip,(jsp,FCKeditor整合包),作用:This is the JSP Integration Pack for using FCKeditor inside a java server page without the complexity of using a Java scriptlets or the javascript api.

  3、将FCKeditor-2.3/web/WEB-INF/web.xml中的两个servlet,servlet-mapping定义复制到自已项目的web.xml文件中
修改

<servlet-mapping>  
        <servlet-name>Connector</servlet-name>  
        <url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>  
    </servlet-mapping>

<servlet-mapping>  
        <servlet-name>SimpleUploader</servlet-name>  
        <url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern>  
 </servlet-mapping>

  为

<servlet-mapping>  
        <servlet-name>Connector</servlet-name>  
        <url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>  
    </servlet-mapping>

<servlet-mapping>  
        <servlet-name>SimpleUploader</servlet-name>  
        <url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>  
  </servlet-mapping>

  4、将FCKeditor-2.3/web/WEB-INF/lib目录下文件复制到自已项目的lib文件夹中

  5、在需使用FCKeditor的jsp界面中加入:

// 文件开头处加入  
<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %>  
//要使用的地方加入  
<FCK:editor id="content" basePath="/FCKeditor/"  
                                imageBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"  
                                linkBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" 
                                flashBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"  
                                imageUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Image"  
                                linkUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=File"  
                                flashUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Flash">  
            this is default content :)  
</FCK:editor>

  启动服务器测试。。。。成功后,来给FCKeditor瘦瘦身.

  1、将FCKeditor目录下及子目录下所有以”_”下划线开头的文件夹删除
  2.FCKeditor根目录下只保留fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml其余全部删除
  3.将editor/filemanager/upload目录下文件及文件夹清空.
  4.还可以将editor/skins目录下的皮肤文件删除,只留下default一套皮肤(如果你不需要换皮肤的话)
  5.还可以将editor/lang目录下文件删除,只保留en.js, fcklanguagemanager.js, zh-cn.js, zh.js文件(英文,简体中文,繁体中文一般应该够用了:) )

  完成,现在看是不是清爽了很多?

  其它问题:
  在struts+spring+hibernate中使用,上传图像功能中可能会出现报:
  The output format must have a '{http://xml.apache.org/xalan}content-handler’ property!
  错的情况,将WEB-INF/lib目录下xalan*.jar删除试试

  安全问题:
  假如在前台让普通用户也能使用FCKEditor,要注意相关安全问题,在前台使用时,不要使用默认的ToolBar,
  要将添加图像,flash,图像域按钮去掉
在fckconfig.js中大约78行配置  那些数组中的值就像当于界面上的一个功能,你可以强行把每组值试出来代表什么。:P

  到此安装FCKeditor就完成了,相关详细配置你可以看FCKeditor-2.3.zip,(jsp,FCKeditor整合包)文件夹中web/_samples目录下的例子。

PHP环境下配置在线编辑器FCKeditor

在线编辑器FCKeditor 2.0PHP环境下试用小记

  一、简介
  2004年11月30日推出了FCKeditor 2.0 RC1版,据其官方网站称:这是FCKeditor 2.0版的第一个稳定版本。大家现在可以考虑正式使用它了。目前支持的后台语言有ASP、ASP.Net、PHP和ColdFusion。

  笔者在经过简单的试用发现,在线编辑器2.0版确实比1.6版有了许多的改进。首先是FCKeditor的文件结构更加清晰,可以更方便地将其部署在自己的系统中。另外2.0版终于支持了Firefox 1.0浏览器,这将为FCKeditor赢得更多的使用者。废话不多说,让我们赶快来学习如何安装、配置FCKeditor 2.0吧。

  二、安装与范例

  首先到http://sourceforge.net/projects/fckeditor/ 下载FCKeditor 2.0 RC1(554K),并将其解压缩到你的网站目录里面,并将文件夹名改为FCKeditor。举例来说,如果你的网站放在shaof这个目录下面,则在这个目录中建立3个子目录:
n         FCKeditor:存放从网站上下载的FCKeditor在线编辑器
n         upimages:用于存放上传的图片
n         admin:里面存放测试页面

  网站的结构如下:
      /FCKeditor           //FCKeditor目录 
      /UserFiles            //上传文件目录 
      /admin 
              test.php          //提交数据页面 
              testsubmit.php     //显示数据页面

  进入到FCKeditor目录下,打开_samples目录,里面含有各种编程语言调用FCKeditor的范例程序页面,其中php目录中包含着一些使用PHP来调用FCKeditor的范例,大家可以看一下,了解FCKeditord的调用方法,下面是我简写了一个test.php程序,放在网站根目录下的admin目录中:

if($_POST["ADD"]){     
       $Content=$_POST['EditorDefault']; 
echo $Content; 
//变量$Content就是我们在FCKeditord里面编辑的内容,这里可以将其保存到数据库,代码省略。 
}

 

  三、配置在线编辑器

  FCKeditor 2.0的配置文件为FCKeditor\fckconfig.js,其中几个重要的配置项目如下:

  1、工具栏的设置

默认情况下,FCKeditor会调用如下的工具栏按钮,大家可以根据自己的需要进行增减。需要注意的是,2.0版与1.6版的按钮并不完全相同,有些按钮以及删除或者改名了。

//## 
//## Toolbar Buttons Sets 
//## 
FCKConfig.ToolbarSets["Default"] = [ 
       ['Source','-','Save','NewPage','Preview'], 
       ['Cut','Copy','Paste','PasteText','PasteWord','-','Print'], 
       ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'], 
       ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'], 
       ['OrderedList','UnorderedList','-','Outdent','Indent'], 
       ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'], 
       ['Link','Unlink'], 
       ['Image','Table','Rule','SpecialChar','Smiley'], 
       ['Style','FontFormat','FontName','FontSize'], 
       ['TextColor','BGColor'], 
       ['About'] 
] ;

  2、简体中文设置

  编辑edit/lang/fcklanguagemanager.js

  将下面语句

FCKLanguageManager.AvailableLanguages =  

 'ar'  : 'Arabic', 
 'bs'  : 'Bosnian', 
 'ca'  : 'Catalan', 
 'en'  : 'English', 
 'es'  : 'Spanish', 
 'et'  : 'Estonian', 
 'fi'  : 'Finnish', 
 'fr'  : 'French', 
 'gr'  : 'Greek', 
 'he'  : 'Hebrew', 
 'hr'  : 'Croatian', 
 'it'  : 'Italian', 
 'ko'  : 'Korean', 
 'lt'  : 'Lithuanian', 
 'no'  : 'Norwegian', 
 'pl'  : 'Polish', 
 'sr'  : 'Serbian (Cyrillic)', 
 'sr-latn' : 'Serbian (Latin)', 
 'sv'  : 'Swedish' 
}

  添加一行 'zh-cn'    : 'Chinese' 从而变成

FCKLanguageManager.AvailableLanguages =  

 'ar'  : 'Arabic', 
 'bs'  : 'Bosnian', 
 'ca'  : 'Catalan', 
 'en'  : 'English', 
 'es'  : 'Spanish', 
 'et'  : 'Estonian', 
 'fi'  : 'Finnish', 
 'fr'  : 'French', 
 'gr'  : 'Greek', 
 'he'  : 'Hebrew', 
 'hr'  : 'Croatian', 
 'it'  : 'Italian', 
 'ko'  : 'Korean', 
 'lt'  : 'Lithuanian', 
 'no'  : 'Norwegian', 
 'pl'  : 'Polish', 
 'sr'  : 'Serbian (Cyrillic)', 
 'sr-latn' : 'Serbian (Latin)', 
 'sv'  : 'Swedish', 
 'zh-cn'     : 'Chinese' 
}

  然后到这里http://www.shaof.com/download/zh-cn.js下载汉化好的zh-cn.js保存到editor/lang目录下即可。

  四、设置文件上传

FCKeditor 2.0在线编辑器采用了一种名为“Connector”(连接器)的技术来实现对文件的浏览以及上传。下图显示了文件浏览的工作流程图。


从图中可以看出,当客户端向服务器发出一个文件操作请求后,Connector就会对此请求进行响应,在服务器的文件系统中进行执行操作,如:文件和文件夹的浏览以及创建操作。最后将结果以XML的格式回应给客户端。具体的技术细节大家可以阅读FCKeditor自带的说明指南。
落实到应用,首先我们要选择一个后台语言用来实现这个功能,这里我们以PHP为例进行说明。

  1、  修改配置文件FCKeditor\fckconfig.js中的两段内容
//Link Browsing 
FCKConfig.LinkBrowser = true ; 
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/php/connector.php" ; 
FCKConfig.LinkBrowserWindowWidth = screen.width * 0.7 ;    // 70% 
FCKConfig.LinkBrowserWindowHeight       = screen.height * 0.7 ;   // 70% 
//Image Browsing 
FCKConfig.ImageBrowser = true ; 
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/php/connector.php" ; 
FCKConfig.ImageBrowserWindowWidth  = screen.width * 0.7 ;     // 70% ; 
FCKConfig.ImageBrowserWindowHeight = screen.height * 0.7 ;       // 70% ;
  2、  修改配置文件

FCKeditor\editor\filemanager\browser\default\connectors\php\connector.php 
// Get the "UserFiles" path. 
$GLOBALS["UserFilesPath"] = '/UserFiles/' ;

  UserFiles为文件上传的路径,与本文开头所给的例子相对应,大家可以自行修改。
好啦,只需要两步就完成了文件上传的配置工作,真是简单呀。以后我们通过FCKeditor上传的文件都会保存在网站的UserFiles目录下。

  五、结束

最后大家可以把FCKeditor目录下的_docs和_samples两个目录删除以节省空间。本文是笔者以前写过的一篇名为《在线编辑器FCKeditor在PHP中的使用方法》(1.6版)文章的升级版本,文章如有不妥之处,还请大家指正。

  另,遇到的问题

  1、图片文件上传路径问题

  安装我文章里面的设置,上传路径设置为UserFiles/,但是上传图片文件时,FCKeditor都自动把文件上传到UserFiles/image目录下面,自做主张的建立了一个image目录,很是不爽。原因不明。

配置FCKeditor(FCKeditor for java)

1.下载
FCKeditor.java 2.3 (FCKeditot for java)
FCKeditor 2.2 (FCKeditor基本文件)

  2.建立项目:tomcat/webapps/TestFCKeditor.

  3.将FCKeditor2.2解压缩,将整个目录FCKeditor复制到项目的根目录下,
目录结构为:tomcat/webapps/TestFCKeditor/FCKeditor
然后将FCKeditor-2.3.zip(java)压缩包中\web\WEB-INF\lib\目录下的两个jar文件拷到项目的\WEB-INF\lib\目录下。把其中的src目录下的FCKeditor.tld文件copy到TestFCKedit/FCKeitor/WEB-INF/下

  4.将FCKeditor-2.3.zip压缩包中\web\WEB-INF\目录下的web.xml文件合并到项目的\WEB-INF\目录下的web.xml文件中。

  5. 修改合并后的web.xml文件,将名为SimpleUploader的Servlet的enabled参数值改为true,
以允许上传功能,Connector Servlet的baseDir参数值用于设置上传文件存放的位置。
添加标签定义:

<taglib> 
<taglib-uri>/TestFCKeditor</taglib-uri> 
<taglib-location>/WEB-INF/FCKeditor.tld</taglib-location> 
</taglib>

  6. 上面文件中两个servlet的映射分别为:/editor/filemanager/browser/default/connectors/jsp/connector
和/editor/filemanager/upload/simpleuploader,需要在两个映射前面加上/FCKeditor,
即改为/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector和
/FCKeditor/editor/filemanager/upload/simpleuploader。

  7.进入skin文件夹,如果你想使用fckeditor默认的这种奶黄色,
那就把除了default文件夹外的另两个文件夹直接删除.

  8.删除/FCKeditor/目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文件以外的所有文件 
删除目录/editor/_source,
删除/editor/filemanager/browser/default/connectors/下的所有文件
删除/editor/filemanager/upload/下的所有文件
删除/editor/lang/下的除了fcklanguagemanager.js, en.js, zh.js, zh-cn.js四个文件的所有文件

  9.打开/FCKeditor/fckconfig.js
修改 FCKConfig.DefaultLanguage = 'zh-cn' ; 
把FCKConfig.LinkBrowserURL等的值替换成以下内容:

FCKConfig.LinkBrowserURL 
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;

FCKConfig.ImageBrowserURL 
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;

FCKConfig.FlashBrowserURL 
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ; 
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ; 
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;

  10.其它
fckconfig.js总配置文件,可用记录本打开,修改后将文件存为utf-8 编码格式。找到:

  FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键。

  如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,
      在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,
     也就是基本的toolbar,找到:
     FCKConfig.ToolbarSets["Basic"] = [
     ['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-',
     'Smiley','SpecialChar','Replace','Preview'] ] ;
     这是改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台
     页直接访问和上传文件, fckeditor还支持编辑域内的鼠标右键功能。

FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',
     /*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;

这也是改过的把鼠标右键的“链接、图像,FLASH,图像按钮”功能都去掉。

  找到: 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' ;

7、添加页面

<%@ page language="java" import="com.fredck.FCKeditor.*" %> 
<%@ taglib uri="/WEB-INF/tlds/FCKeditor.tld" prefix="FCK" %> 
<script type="text/javascript" src="http://dszhang.blog.163.com/blog/FCKeditor/fckeditor.js"></script> 
<form action="show.jsp" method="post" target="_blank"> 
<table border="0" width="700"><tr><td> 
<textarea id="content" name="content" style="WIDTH: 100%; HEIGHT: 400px">input</textarea> 
<script type="text/javascript"> 
var oFCKeditor = new FCKeditor('content') ; 
oFCKeditor.BasePath = "FCKeditor/" ; 
oFCKeditor.Height = 400; 
oFCKeditor.ToolbarSet = "Default" ;  
oFCKeditor.ReplaceTextarea(); 
</script> 
<input type="submit" value="Submit"> 
</td></tr></table> 
</form>

编辑web.xml 文集 添加 如下片断

<servlet> 
  <servlet-name>SimpleUploader</servlet-name> 
  <servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class> 
  <init-param> 
   <param-name>baseDir</param-name> 
   <param-value>/UserFiles/</param-value> 
  </init-param> 
  <init-param> 
   <param-name>debug</param-name> 
   <param-value>true</param-value> 
  </init-param> 
  <init-param> 
   <param-name>enabled</param-name> 
   <param-value>false</param-value> 
  </init-param> 
  <init-param> 
   <param-name>AllowedExtensionsFile</param-name> 
   <param-value></param-value> 
  </init-param> 
  <init-param> 
   <param-name>DeniedExtensionsFile</param-name> 
   <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value> 
  </init-param> 
  <init-param> 
   <param-name>AllowedExtensionsImage</param-name> 
   <param-value>jpg|gif|jpeg|png|bmp</param-value> 
  </init-param> 
  <init-param> 
   <param-name>DeniedExtensionsImage</param-name> 
   <param-value></param-value> 
  </init-param> 
  <init-param> 
   <param-name>AllowedExtensionsFlash</param-name> 
   <param-value>swf|fla</param-value> 
  </init-param> 
  <init-param> 
   <param-name>DeniedExtensionsFlash</param-name> 
   <param-value></param-value> 
  </init-param> 
  <load-on-startup>1</load-on-startup> 
 </servlet> 
  <servlet-mapping> 
    <servlet-name>Connector</servlet-name> 
    <url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern> 
  </servlet-mapping> 
   
  <servlet-mapping> 
    <servlet-name>SimpleUploader</servlet-name> 
    <url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern> 
  </servlet-mapping>

<taglib> 
 <taglib-uri>/WEB-INF/FCKeditor.tld</taglib-uri> 
 <taglib-location>/WEB-INF/tlds/FCKeditor.tld</taglib-location> 
 </taglib>

//引入在线编辑器
include("../FCKeditor/fckeditor.php") ;
  这里我们先看一下调用FCKeditor的函数,2.0版的调用方式与1.6版变化不大,如果你以前安装过FCKeditor 1.6,那么只需要修改很少的代码升级到2.0。
FCKeditor( instanceName[, width, height, toolbarSet, value]
引用值
含义
  InstanceName
实例化编辑器所需的唯一名称
  Width
编辑器的宽度,单位为象素或者百分比(可选择的,默认为:100%)
  Height
编辑器的高度,单位为象素或者百分比(可选择的,默认为:200)
  ToolbarSet
工具栏的名称(可选择的,默认为:Default)
  Value
编辑器的内容(HTML)初始值(可选择的)

  好啦,下面就让我们利用这个函数来定制FCKeditor吧。
$oFCKeditor = new FCKeditor('FCKeditor1')  ; 
$oFCKeditor->BasePath = '../FCKeditor/' ;    
$oFCKeditor->ToolbarSet = 'Default' ; 
$oFCKeditor->InstanceName = 'EditorDefault' ; 
$oFCKeditor->Width = '100%' ; 
$oFCKeditor->Height = '400' ; 
$oFCKeditor->Create() ;

ASP.NET下FCKeditor配置方法全解相关推荐

  1. nginx下gzip配置参数详解

    这篇文章主要介绍了nginx下gzip配置参数详解,本文同时给出了配置例子,以及一些注意事项,需要的朋友可以参考下 Nginx自带的有gzip模块 http://wiki.nginx.org/Ngin ...

  2. linux下安装配置jdk(解压版)

    在linux下登录oracle官网,下载解压版jdk    传送门 系统默认下载到"下载"目录中 创建要将该文件解压的文件夹: 其中 -p 参数代表递归创建文件夹(可以创建多级目录 ...

  3. CKfinder 和 CKEditor 在 ASP.NET 下的配置

    A配置 CKfinder 和 CKEditor 不需要配置,直接拷贝就好.CKfinder 有个bin需要引用,位置就在文件夹下 B因为安全原因,文件不可浏览.请联系系统管理员并检查CKFinder配 ...

  4. Centos6.6下安装配置Redmine详解

    分类:项目管理 | 发表于 2015年7月29日 星期三 下午5:38 发表评论 一.简介: Redmine是一个开源的基于web的项目管理和缺陷跟踪工具,它用日志和甘特图辅助项目进度可视化显示,同时 ...

  5. ASP.Net MVC框架配置分析详解

    前几年的时候ASP.Net就有MVC的概念,实际上就是我们熟悉的WebForm开发模型. 1.Model层与视图无关,并且只与数据库相关: 伪代码: pulic class Model {       ...

  6. win7下安装配置theano详解

    以我自己实验室电脑装win7系统64位为例. 1.安装anaconda(已内置python,numpy和scipy两个必要库以及一些其他库,自带安装.) 地址:https://www.continuu ...

  7. Linux下wlan配置程序详解,linux 命令行配置wlan无线网卡

    无线网卡配置 此页由Linux Wiki用户Chenxing于2008年11月27日 (星期四) 09:28的最后更改. 在1233456的工作基础上. 本文介绍在Linux命令行界面中手动配置无线网 ...

  8. 【Python基础】一文理解Python集合,17个方法全解,看完就够了

    一.集合的定义 01 定义与特性 Python中的集合类似于数学中的集合概念,它是一组无序.不可重复元素序列,集合用{value1,value2}创建,某种程度上可以把集合看作是没有值的字典.字典是d ...

  9. linux防火墙 33001端口,Linux操作系统下IPTables配置方法详解

    如果你的IPTABLES基础知识还不了解,建议先去看看. 我们来配置一个filter表的防火墙 1.查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Ch ...

最新文章

  1. vs 2012自带打包工具进行部署安装
  2. (chap1 网络基础知识)网络的构成要素:(3)交换机
  3. android布局如何空行,借用你的思路和框架,修复了空行、偶尔setText无效、padding设置的bug...
  4. 一篇搞定,分布式系统中唯一主键生成
  5. 【图像处理】数字图像处理之颜色
  6. java 1.7的新特性_[Java]  JDK 1.7版本的 新特性
  7. 68 cookie在登录中的作用
  8. HBase 的表设计
  9. 如何建立个人创业的基石
  10. Ubuntu1604安装pycharm
  11. perl 语言中的q,qw,qr,qx,qq符号用法总结
  12. 有点累了?不如看看兵法三十六计。
  13. android微信版本怎么升级,安卓微信怎么更新到最新版本?
  14. 深度学习半年学习心得(如何入门)
  15. 安卓设计师不容错过的15款实用UI界面设计工具
  16. CODEVS 3977 炉石传说——圣骑士的逆袭
  17. Color Models (RGB, CMY, HSI)
  18. 关于 移动端隐藏scroll滚动条::-webkit-scrollbar
  19. 苹果手机计算机怎么看以前的记录,苹果手机怎么查找以前的历史通话记录
  20. 适合Java初学入门的几本图书

热门文章

  1. 狐狸抓兔子(实验楼的练习)
  2. Skynet日志服务
  3. webclient使用介绍
  4. Linux系统编程4-网络编程
  5. ws2812b灯带容易坏_WS2812灯带问题
  6. linux修改root密码bad,虚拟机Linux系统忘记密码修改root或其他用户密码的方法
  7. adblockplus过滤规则(适用ss自定义pac文件)
  8. 【工具】MATLAB一键转为python
  9. 计算最大曝光时间保证图像不拖影
  10. 一张图了解NFT堆栈,关于NFT生态现状,你知道哪些项目?