一、js如何获得FCKeditor控件的值
首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入FCKEDITOR所需文件.对于其他在线编辑器来说,这几乎是个很难解决的难题,因为在开启编辑器时需要装载太多的文件.比如CUTEEDITOR,虽然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKEDITOR相比,尚有差距,可以说,FCKEDITOR是一个别具匠心的在线编辑器,它里面融入了作者高深的面向对象的JAVASCRIPT功力,集易用性与强大的功能与一体.
.与编辑器相关的所有图像,脚本以及调用页
.语言文件
.编辑器的皮肤文件
.工具样的贴图等
这些将导致在服务器和客户端间产生相当的流量.如果有许多文件被调用,那么即便每个文件很小.也会让用户等得不耐烦.
在2.0版中,开发人员有两种方法来解决这个问题.
那就是指定装载顺序和脚本压缩
装载顺序
从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.现在,编辑器就可以使用了,如果想要查看演示,可以按下面方法访问:
注意:你可以将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=""相对链接的基地址
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>
二、ASP使用FCKEditor的设置技巧
默认语言
打开fckconfig js文件(相对FCKeditor文件夹以下同)把自动检测语言改为不检测把默认语言改为简体中文程序代码 FCKConfig AutoDetectLanguage= false; FCKConfig DefaultLanguage= zh cn;
字体列表打开fckconfig js文件在字体列表中添加常用的“宋体;黑体;隶书;楷体_GB”
程序代码 FCKConfig FontNames=宋体;黑体;隶书;楷体_GB;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana;
文件上传 FCKeditor的文件管理程序在filemanager文件夹中又分为浏览(browser)和上传(upload)两种浏览是指浏览服务器文件并可以选择也可以上传本地文件至服务器上传是指快速上传(QuickUpload)在窗口中点“上传”选项卡打开就是跟我们使用的UBB编辑器有点相似选择本地文件后上传就行也就是说FCKeditor中有一个文件浏览有两个文件上传而这些设置有些在一个文件中有的则在多个文件中比较复杂改动比较多我们再分几个小点儿来说
①打开和关闭文件浏览和上传功能有三个文件跟这个开关有关系一个是js文件两个是asp文件前者关闭后界面中不出现相关窗口或按钮后者关闭后相关功能不可用首先是fckconfig js文件以下内容设为true为开 false则为关文件浏览和浏览中上传功能
程序代码 FCKConfig LinkBrowser= false; FCKConfig ImageBrowser= false; FCKConfig FlashBrowser= false;
文件快速上传功能
程序代码 FCKConfig LinkUpload= true; FCKConfig ImageUpload= true; FCKConfig FlashUpload= true;
其次设置两个asp文件 editorfilemanagerbrowserdefaultconnectorsaspconfig asp
程序代码 ConfigIsEnabled= False表示文件浏览关闭
editorfilemanageruploadaspconfig asp
程序代码 ConfigIsEnabled= True表示文件快速上传打开
②文件上传或浏览的路径设置注意FCKeditor是不支持虚拟目录的您的所有路径都是针对网站根目录的绝对路径这点对于在本地测试用虚拟目录发布到远程用网站目录的开发者不太方便我的就是这样 WinXP系统只能一个站点只有用虚拟目录表示不同的网站在本地测试好了上传前还要临时更改这个设置文件浏览路径打开文件editorfilemanagerbrowserdefaultconnectorsaspconfig asp
程序代码 ConfigUserFilesPath="/attachments/"
快速上传的路径打开文件editorfilemanageruploadaspconfig asp
程序代码 ConfigUserFilesPath="/attachments/"
我的文件目录在下面就照以上设置如果在本地测试这个网站在虚拟目录xxx中则应该设置为
程序代码 ConfigUserFilesPath="//temp/"
③文件快速上传的一个源文件BUG以上设置好后文件浏览和浏览中上传可以顺利进行但是你会发现“快速上传”不能用现象就是当选择好本地文件后点击“上传至服务器”的按钮后没有任何反应这就是因为fckconfig js文件中的一个bug所致打开fckconfig js文件把FCKConfig QuickUploadLanguage字样的地方替换成_QuickUploadLanguage一共要替换三个地方前者没有定义就使用所以有错按代码意图应该和后者的值一样的
④上传文件名自动更名 FCKeditor不支持中文文件名称所以我们要让文件存入服务器时更改名称由于有两个上传的地方而且所用文件不同所以两个文件应该同时改我们先来看看快速上传的文件打开editorfilemanageruploadaspupload asp在文件最后添加以下函数
程序代码 Public Function GetNewFileName() dim ranNum dim dtNow dtNow=Now() randomize ranNum=int(*rnd)+ GetNewFileName=year(dtNow)& right(""& month(dtNow))& right(""& day(dtNow))& right(""& hour(dtNow))& right(""& minute(dtNow))& right(""& second(dtNow))& ranNum End Function
我们用年月日时分秒和两位随机数字来作为文件名这样既能够分辨出文件上传时间也不容易重名然后仍然是这个文件找到
程序代码 Get the uploaded file name sFileName= oUploader File("NewFile") Name
把它改为
程序代码 Get the uploaded file name sFileName= GetNewFileName()&""& split(oUploader File("NewFile") Name"")
上面说的是快速上传的文件而文件浏览中上传则是更改另外一个文件(editorfilemanagerbrowserdefaultconnectorsaspmands asp)其修改方法和上面那个文件一样添加一个函数修改一行代码
在ASP源程序中引用FCKeditor编辑器首先在asp页面顶端插入服务器端包含语句
程序代码<!#include file="FCKeditor/fckeditor asp">
然后在表单里面添加以下代码
程序代码定义变量 Dim oFCKeditor类的初始化 Set oFCKeditor= New FCKeditor定义路径(默认路径/FCKeditor/) oFCKeditor BasePath="FCKeditor/"定义工具条(默认为 Default) oFCKeditor ToolbarSet="Basic"定义宽度(默认宽度%) oFCKeditor Width="%"定义高度(默认高度) oFCKeditor Height=输入框的初始值 oFCKeditor Value="这是示例文本"创建输入框名为 content oFCKeditor Create"content"
这样就在表单里面创建了一个隐藏的名称为content的输入框可以和其他表单元素一样使用例如用以下代码取得该输入框的值
lishixinzhi/Article/program/net/201311/14317三、FCKeditor 是不是免费的
目前,个人用免费.
FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的“FCK”是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。
FckEditor更名CKEditor
著名的开源网页编辑软件FCKEditor在09年发布更新到3.0,并改名为CKEditor。原来叫FCK,是因为最初的开发者叫Frederico Calderia Knabben;现在叫CK,意指"Content and Knowledge"。新版的编辑器的更新包括:新的用户界面,一个支持Plug-in的Javascript API,并提供对视觉障碍者的使用支持。"
据官方的解释,CK是对FCK的代码的完全重写,而且此项工作从2007年就开始了,并在今年初发表了多个测试版。至此,为大家服务长达6年的FCKeditor将被CKeditor替代。