来源: http://www.phpchina.com/51068/viewspace_22098.html
对FckEditor的一点使用经验,及网络上的资料整理
出处 http://www.linwenyong.com/show-11-1.html 里面有更加详细!
FCKeditor目前已经更新到2.6版,详情请看官方http://www.fckeditor.net/
因为下载下来的压缩包里面有包含很多在我们使用时,用不到的,不删除也行。看个人喜好下面以PHP为例,进行程序瘦身
我们通常把编辑器用以个文件夹存放、通常情况下 我们可以明白为fckeditor或editor
找到里面两关键文件 fckeditor_php4.php fckeditor_php5.php 这两个文件的代码相差不了多少,很显然跟php版本有关
打开这两个文件
- function FCKeditor( $instanceName )
- {
- $this->InstanceName = $instanceName ;
- $this->BasePath = './editor/' ; 默认编辑器所在的文件位置
- $this->Width = '100%' ; 默认编辑器宽
- $this->Height = '350' ; 默认编辑器高
- $this->ToolbarSet = 'Default' ; 默认编辑器SKIN
- $this->Value = '' ; 初始值
- $this->Config = array() ;
- }
FCKeditor设置文件 "fckconfig.js"
- 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个功能
这里的文件类型与上面提到的两处文件类型是一致的要改必须许全改
o^ V8aq W0快速上传:
- ConfigIsEnabled = False //是否启用快速上传
- ConfigUserFilesPath = "/UserFiles/"
- //如果想上传到 /test/upload/yyymmdd/的文件夹下面
- 则修改为 ConfigUserFilesPath = "/test/upload/" & year(now())& right("0"& month(now()),2)&right("0" & day(now()),2)
FCKeditor设置多个工具栏样式
AI zM(|/J4CXl0
FCKeditor中自带了两种工具栏样式,Default 和Base。可是我现在想再加一种工具栏样式。 我试了一下。将Default样式的设置复制了一下 改为FCKConfig.ToolbarSets["Blogedit"],里面个体的工具栏项我就不写了。可是当我在调用这个工具栏时,却提示我说工具栏Blogedit设置没有找到,这是怎么回事啊?难道FCKeditor只能使用Def ault 和Base这两种样式吗? 找到 fckconfig.js 里面设置 这里我添加了 ddd 工具栏样式 要用的时候只需要 在
引用的时候 $this->ToolbarSet = 'ddd' ; 就OK 了
- FCKConfig.ToolbarSets["Default"] = [
- ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
- ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
- ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
- ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
- '/',
- ['Bold','Italic','Underline','StrikeThrough','-','Subscrīpt','Superscrīpt'],
- ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
- ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
- ['Link','Unlink','Anchor'],
- ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
- '/',
- ['Style','FontFormat','FontName','FontSize'],
- ['TextColor','BGColor'],
- ['FitWindow','ShowBlocks','-','About'] // No comma for the last row.
- ] ;
- FCKConfig.ToolbarSets["Basic"] = [
- ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
- ] ;
- FCKConfig.ToolbarSets["ddd"] = [
- ['OrderedList','UnorderedList','-','Link','Unlink','-','About','Bold','Italic','Underline','StrikeThroug
- h','-','Subscrīpt','Superscrīpt']
- ] ;
有时间我在吧! ADODB+SMARTY中应用板块写上去
T!@|i.e'd0将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还支持编辑域内的鼠标右键功能。
找到 第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,不用每次刷新页面都去初始化一个编辑器,页面的速度就会快多了。
由于目前的版本提供的FCKEDITOR仅提供了JAVAscrīpt式的整合,因此,这里仅讲述如何应用JAVAscrīpt来整合FCKEDITOR到站点中,当然,其他各种语言的整合,你可以
&I!dZW&j0g0参考_samples文件夹中的例子来完成
r~4w9@1u+N8?T#Xm01,假如编辑器已经安装在你的站点的/FCKEDITOR/文件夹下.那么,第一步我们需要做的就是在页面的HEAD段中放入scrīpt标记以引入JAVAscrīpt整合模块.例如:
`!MmN ww_X0<scrīpt type="text/javascrīpt" src="/fckeditor/fckeditor.js"></scrīpt>
其中路径是可更改的
2,现在,FCKEDITOR类已经可以使用了.有两个方法在页面中建立一个FCKEDITOR编辑器: PHPChina 开源社区门户[)U Y a}
方法1:内联方式(建议使用):在页面的FORM标记内需要插入编辑器的地方置入以下代码: PHPChina 开源社区门户h(F&A^[
scrīpt type="text/javascrīpt">PHPChina 开源社区门户*G"KH+X0n%{3x/cG
var ōFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
9dK'zL-Q A oef4WW0oFCKeditor.Create() ;
8U@6}aVN0</scrīpt>
方法2:TEXTAREA标记替换法(不建议使用):在页面的ONLOAD事件中,添加以下代码以替换一个已经存在的TEXTAREA标记
<html>
p6f;@2E~;WJ/0NC0<head>
!j z#{9a"W W0<scrīpt type="text/javascrīpt">PHPChina 开源社区门户|&l,{M aa aE7bxO
window.onload = function()
Z0@(O C;U9L1q7N u0{
;bH"ue T L0var ōFCKeditor = new FCKeditor( 'MyTextarea' ) ;PHPChina 开源社区门户h(Y*M_3{
oFCKeditor.ReplaceTextarea() ;
6si_R9/.B0}
)P mE9ObOS:YE _2t:C0</scrīpt>PHPChina 开源社区门户/:b I^H"W;rEJj4|
</head>
-vYK5P;t5C0<body>
(rI"bHB$XsX@.|0<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
[Tm-x l,x0</body>PHPChina 开源社区门户X7a7]0OR6Ih~
</html>
现在,编辑器可以使用了
FCKEDITOR类参考: PHPChina 开源社区门户)ZPBDAv
下面是用来在页面中建立编辑器的FCKEDITOR类的说明
构造器: PHPChina 开源社区门户,^s;j_,bd R!I
FCKeditor( instanceName[, width, height, toolbarSet, value] )
4M4ge~ Ry0instanceName:编辑器的唯一名称(相当于ID)
WmR]PQV#~&{0WIDTH:宽度 PHPChina 开源社区门户!Z;Kw~V)T;vIo9M B,N
HEIGHT:高度 PHPChina 开源社区门户%r1FJ5M)H8n({
toolbarSet:工具条集合的名称
8L7w3MQ^V8o:|n"J0value:编辑器初始化内容
属性:
:g(?J)Pk)Mf(zi?0instanceName:编辑器实例名
9NE|7UjfJB0width:宽度,默认值为100% PHPChina 开源社区门户)q*Vw%Z1j*}ZN? y_8s
height:高度,默认值是200 PHPChina 开源社区门户/7hltoJt
ToolbarSet:工具集名称,参考FCKCONFIG.JS,默认值是Default
R1U[W;d1~;i0value:初始化编辑器的HTML代码,默认值为空 PHPChina 开源社区门户(r$L;C0{0iK ].T
BasePath:编辑器的基路径,默认为/Fckeditor/文件夹,注意,尽量不要使用相对路径.最好能用相对于站点根路径的表示方法,要以/结尾 PHPChina 开源社区门户7@MD8q{cF
CheckBrowser:是否在显示编辑器前检查浏览器兼容性,默认为true
9Gu1@ o&e p0DisplayErrors:是否显示提示错误,默为true;
#m`PL&p jq!Uw0集合: PHPChina 开源社区门户n^V"f l.M9A
Config[Key]=value;
w$LQ5s2Ts0这个集合用于更改配置中某一项的值,如 PHPChina 开源社区门户_2W*Fe3Ew&T3w
oFckeditor.Config["DefaultLanguage"]="pt-br";
方法: PHPChina 开源社区门户d5`Y@a6DNq
Create()PHPChina 开源社区门户B$w D7};Iv
建立并输出编辑器
RepaceTextArea(TextAreaName)
o6zC4RM0用编辑器来替换对应的文本框
如何配置FCKEDITOR? PHPChina 开源社区门户4B*^7bhJ|M(rx
FCKEDITOR提供了一套用于定制其外观,特性及行为的设置集.主配置文件名为Fckconfig.js PHPChina 开源社区门户 ?o0gk7sk
你既可以编辑主配置文件,也可以自己定义单独的配置文件.配置文件使用JAVAscrīpt语法.
修改后,在建立编辑器时,可以使用以下语法: PHPChina 开源社区门户y] v0a;m ixG)h
var ōFCKeditor = new FCKeditor( 'FCKeditor1' ) ;PHPChina 开源社区门户f4L.Ue6FP({d
oFCKeditor.Config['CustomConfigurationsPath'] = '/myconfig.js' ;
0jZKC#j rA B2y5] ~R0oFCKeditor.Create() ;
提醒:当你修改配置后,请清空浏览器缓存以查看效果
自定义样式列表
1L#|0g'y@E&d:k0FCKEDITOR的样式工具栏中提供了预定义的样式,样式是通过XML文件定义的,默认的XML样式文件存在于FCkEditor根文件夹下的FckStyls.xml文件中 PHPChina 开源社区门户+/;s&A/d5_5V n,~;](e
这个XML文件的结构分析如下:
bf)Z~'G~:W1Fy0<?xml version="1.0" encoding="utf-8" ?>PHPChina 开源社区门户#c7@:W /I/W y
<Styles >
y}!UXxt|@/A*M0<Style name="My Image" element="img">
!}L2w2pzx Ys'u L0<Attribute name="style" value="padding: 5px" />
A.o @'CE)c+g0<Attribute name="border" value="2" />
9R/#qj iQ0</Style >PHPChina 开源社区门户1L i&]$`{
<Style name="Italic" element="em" />
6c%z0c}3n5X#B8X0<Style name="Title" element="span">
Bp/M1h T*e7cjy&t0<Attribute name="class" value="Title" />PHPChina 开源社区门户 RC /5|B`6k;_~7d
</Style >PHPChina 开源社区门户 b@VV5h3a5VT
<Style name="Title H3" element="h3" />
2{ viiC2C(r O"_0</Styles>
PHPChina 开源社区门户U5je`2J#l?
每一个STYLE标记定义一种样式,NAME是显示在下拉列表中的样式名,ELEMENT属性指定此样式所适用的对象,因为FCKEDITOR中的样式是上下文敏感的,也就是说,选PHPChina 开源社区门户qK vu^S4Pa0A!z$yN
择不同的对象,仅会显示针对这类对象定义的样式
PHPChina 开源社区门户t)S fN(ja9b
拼写检查
&r0x-W*V1u)rD0FCKEDITOR带了两种拼写检查工具,一种是ieSpell,默认情况下使用这种,使用这种方式的拼写检查,要求客户下载并安装iespell这个小软件,另外,也提供SpellPager的方
B tN$f7{6Q?Y;b5sp`0式来进行拼写检查,不过,由于SPELLPAGER是由PHP编写的服务器端脚本,因此,要求你的WEB服务器必须支持PHP脚本语言方可
4}/ o_y.HDF`0更改拼写检查器的方式请参见有关配置文件的详细说明
PHPChina 开源社区门户mvO(| Z(V7Bm^Q
压缩脚本
g }!_;a7k9t0为了提供脚本载入的效率,FCKEDITOR采用以下方法对脚本尽量压缩以减少脚本尺寸: PHPChina 开源社区门户2et|Q ci)]0W/Z
1,移除掉脚本中的注释
2[z ~-sd U'KYh02.移除掉脚本中所有无意义的空白
W H1Z_v3sgY0另外,FCKEDITOR还提供了一个专门用于压缩脚本的工具以便 你在发布时能减小文件尺寸,
Y3|[!lR6z0你可以将_Packager文件夹中的Fckeditor.Packager.exe复制到FCKEDITOR根文件夹来运行并压缩脚本
4b1J m.g%N0
-RO.ts d_M(ph0本地化FCKEDITOR
5@wc1` ^'X l{O0如果FCKEDITOR没有提供您所需要的语言(实际上全有了),你也可以自行制作新的语言 PHPChina 开源社区门户.wUH e%`Mkr)N
,你只需要复制出EN.JS,然后在其基础上进行翻译.另外,语言名称与对应的脚本文件名必须遵循RFC 3066标准,但是,需要小写,例如:Portuguess Language对应的脚本PHPChina 开源社区门户F%`G,/!^0y!q
文件名必须为pt.js PHPChina 开源社区门户4YX XE0@+`(]5m+w
如果需要针对某个国家的某种语系,则可以在语系缩写后加上横线及国家缩写即可 PHPChina 开源社区门户#s [^7d;qI6i+k
在使用时,系统会自动侦测客户端语系及国别而运用适当的界面语言.
kD!j d+uy9},u5M+|0当建立一种新的语言后,你必须在"Edit/lang/fcklanguagemanager.js"中为其建立一个条目,如下所示: PHPChina 开源社区门户8i6Fdb5exl k
FCKLanguageManager.AvailableLanguages =
|I^#UM!k'Jes(r0{
en : 'English',PHPChina 开源社区门户f"Q AA5jHZ
pt : 'Portuguese' PHPChina 开源社区门户+g:{&R x2O I@S
}
需要提醒的是,文件必须保存为UTF-8格式