• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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.现在,编辑器就可以使用了,如果想要查看演示,可以按下面方法访问:
    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="" _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>

    Feedback

    #1楼 [楼主]   回复  引用  查看    

    2007-08-22 15:45 by 春风依旧      

    javascript调用方式:
    ------------------------------------
    script. type=”text/javascript” src=”FCKeditor/fckeditor.js”>/scrīpt>
    textarea name=”content” cols=”80″ rows=”4″>
    /textarea>
    script. type=”text/javascript”>
    var FCKeditor = new FCKeditor(”content”);
    oFCKeditor.BasePath = “FCKeditor/”;
    oFCKeditor.Height = 400;
    oFCKeditor.ToolbarSet = “Default”;
    oFCKeditor.ReplaceTextarea();
    /script>
    ------------------------------------
    如果想要使用从数据库读来的文本数据或者是后台来自文件的txt/html文本数据。
    只要在
    ------------------------------------
    textarea name=”content” cols=”80″ rows=”4″>
    /textarea>
    ------------------------------------
    中加入自己的显示内容的formbean对应字段即可
    ------------------------------------
    textarea name=”content” cols=”80″ rows=”4″>
    c:out value=”${contentData}” />
    /textarea>
    ------------------------------------
    这样内容就会被显示在FCKeditor编辑框中了,点击提交按钮以后就可以在后台的相应java action中得到content参数中的内容就是页面上FCKeditor中的内容数据了。可以在struts/jsf中使用。
    ====================================
    由于给FCKeditor瘦身,所以常会报缺少对象支持等错误,只要在FCKeditor/editor/lang中加上相应的js语言文件即 可。如果加载页面失败(FCKeditor未定义)还有一个可能就是引用FCKeditor/fckeditor.js文件路径不对!
    关于FCKeditor瘦身要点如下:
    1.将FCKeditor目录下及子目录下所有以“_”下划线开头的文件夹删除
    2.FCKeditor根目录下只保留fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml,其余全部删除
    3.将editor/filemanager/upload目录下文件及文件夹清空
    4.将/editor/filemanager/browser/default/connectors/下的所有文件删除
    5.还可以将editor/skins目录下的皮肤文件删除,只留下default一套皮肤(如果你不需要换皮肤的话)
    6.还可以将editor/lang目录下文件删除,只保留en.js, fcklanguagemanager.js, zh-cn.js, zh.js文件
    7.如果你是使用javascrīpt来调用加载FCKeditor,那么就不需要在web.xml中配置fckeditor的tag文件。
    8.还有一个问题刚开始使用FCKeditor的人常会遇到就怎么控制它的toolbar的大小和元素排列,其实很简单。
    在fckconfig.js中用这样的标签[]来划分每行的元素的多少,这样就可以控制toolbar的长短和大小了,具体示例参看:fckconfig.js中的toolbarset[”Default”]
    ====================================
    用fckconfig.js中的一些选项来控制toolbarset中控件的功能,实现功能裁剪:
    1):取消超链接中的浏览服务器和上传功能,方法如下:
    ------------------------------------
    FCKConfig.LinkBrowser = true;
    FCKConfig.LinkUpload = true;
    改为:
    FCKConfig.LinkBrowser = false;
    FCKConfig.LinkUpload = false;
    ------------------------------------
    2):取消图片链接中的浏览服务器和上传功能,方法如下:
    ------------------------------------
    FCKConfig.ImageUpload = true;
    FCKConfig.ImageBrowser = true;
    改为:
    FCKConfig.ImageUpload = false;
    FCKConfig.ImageBrowser = false;
    ------------------------------------
    3):Dlg Button中取消高级功能,方法如下:
    FCKConfig.LinkDlgHideAdvanced = false ;
    FCKConfig.ImageDlgHideAdvanced = false ;
    改为:
    FCKConfig.ImageDlgHideAdvanced = true ;
    FCKConfig.LinkDlgHideTarget = true ;
    ------------------------------------
    下一篇介绍FCKeditor的上传和浏览服务器功能,以及如何在里面实现动态
    超连接,转发到servlet经过filter以后去调用服务器的action
    如何实现对应用户浏览自己的图片的列表实现!
    ====================================
    FCKeditor集成java servlet可以实现文件的上传和服务器端列表读取功能FCKeditor自己提供了两个servlet来分别实现上传文件功能,和读取服务器端文件列表功能,这两个servlet分别为:
    com.fredck.FCKeditor.connector.ConnectorServlet(读取文件列表)
    com.fredck.FCKeditor.uploader.SimpleUploaderServlet(实现文件上传)
    1.浏览服务器端文件列表
    ------------------------------------
    web.xml文件中,比如:ConnectorServlet中的配置选项:
    init-param>
    param-name>baseDir/param-name>
    param-value>/UserFiles//param-value>
    /init-param>
    意思是在浏览服务器上的baseDir配置指定里面的所有文件及其目录结构列表。
    如果你的baseDir没有配置,Connector将会自动创建一个默认的文件夹
    UserFiles,对应的ConnectorServlet中init()方法中代码如下:
    ------------------------------------
    baseDir = getInitParameter(”baseDir”);
    if (baseDir == null)
    baseDir = “/UserFiles/”;
    ------------------------------------
    还想说一下的是,FCKeditor的client调用server的servlet方法采用的是Ajax思想来实现。当你点击浏览服务器 (browser server)的时候就会触发一个异步的javascrīpt + xmlhttp的调用响应,后台的servlet会去完成你要请求的事件,然后数据以xml方式返回给client来解析。很明显,你要实现去数据库或者 其他的文件系统请求列表,你只要修改
    ConnectorServlet中两个私有方法:getFolders 和 getFiles
    让它去你指定的地方得到文件列表即可,这样你的文件可以放在任何你指定目录下。多说一句,很多人都想知道个人blog系统中怎么实现上传文件以后 对应用户浏览自己的列表的,我的做法很简单,建立你用户名的文件夹,你上传只能上传到你的目录夹,浏览可以通过程序指定浏览对应用户下的文件夹即可,这个 时候你要修改Connectorservlet中的路径即可!
    ------------------------------------
    2.超连接重定位问题
    ------------------------------------
    FCKeditor可以插入超连接,实现对文件的预览功能,只要我们稍微改变我们可以使FCKeditor编辑器支持对任意文件系统下的任意文件 的客户端浏览和下载保存!FCKeditor本来提供的是相对URL超链接,只要我们修改ConnectorServlet中传递给客户端的地址的时候, 把它改写成绝对URL然后再通过我们自己的filter的servlet实现重定向去一个下载/浏览文件的struts的action方法就可以实现在客 户端对超连接文件的下载和浏览!说一下具体做法吧:
    1):修改ConnectorServlet传递给客户端javascrīpt的路径,代码如下:
    String currentUrl = “http://” + request.getserver +request.getServerPort + request.getContextPath + resourcePath;
    以上代码请在ConnectorServlet的doGet()里面拼装!在调用CreateCommonXml()私有方法的时候参数传入:
    myEl.setAttribute(”path”,currentPath);
    myEl.setAttribute(”url”,currentUrl);
    提醒一下resourcePath为在web.xml配置文件中ConnectorServlet中的一个初始化参数配置,等一下利用filter实现对超连接的重定位就提取URL中的这个配置参数来判断,配置如下:
    init-param>
    param-name>resourcePath/param-name>
    param-value>/fileSystem//param-value>
    /init-param>
    2):建立你的filter servlet,实现对URL的截获,对符合要求的URL进行重定位到你的对应action中去即可
    3):实现你的对应action来实现文件的上传和下载功能即可!
    4):扩展功能-实现对URL的加密,对连接的URL中加上一串字符,最后几位作为算法校验,对不符合要求的URL连接,filter将会拒绝重 定位到指定action。此外利用自己写的扩展类还可以实现对超连接的文件类型进行限制,比如你只能超连接JPG|GIF|DOC|TXT|HTML等几 种后缀名的文件,对其他文件即使你指定超连接也让你浏览和下载,这些都可以在web.xml中通过修改对应servlet的配置文件的初始化参数实现。
    3.页面javascrīpt修改
    ------------------------------------
    浏览服务器的功能对应的html/javascrīpt相关的文件为:browser.html和frmresourcelist.html对应 你想传递的信息你可以append在文件名的字符串后面,在GetFileRowHtml()的javascrīpt函数中实现对文件名的截取,这样 client只会显示文件名,而你可以得到文件的数据库唯一标识,任何你想要的信息你都可以通过修改ConnectorServlet中的私有方法 getFiles()来实现,只要修改页面frmresurcelist.html中的GetFileRowHtml()中传入变量fileName即 可。你还可以在点击选中文件的时候实现一个你自己的Ajax调用,一切取决你的项目需要!
    4.我不是一个javascrīpt高手,其实如果我对javascrīpt了解多一些也许对客户端的代码修改以后做出更眩的功能。可以更好的完成对FCKeditor裁剪。
    -------------------------------------
    5.注意点
    -------------------------------------
    无论怎么修改别人的东西,请一定尊重开源精神!
    很多人配置好了FCKeditor的上传功能以后常会遇到xmlhttp request 404 error,后面是一串路径,其实就是你的servlet-mapping中的路径不对,你只要把xmlhttp request errot 404 后面跟的路径,copy到你的web.xml中对应红色文字的位置,如下:
    servlet-mapping>
    servlet-name>Connector/servlet-name>
    url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector/url-pattern>
    /servlet-mapping>
    别忘了SimpleUploader的servlet-mapping也要做同样的修改!
    还有一个错误就是http 500错误,这个可能是你的URL请求不对,应该和FCKeditor没关系的!
    ======================================
    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';
    添加文件 /TestFCKeditor/test.jsp:
    ----------------------------------------
    %@ page language=”java” import=”com.fredck.FCKeditor.*” %>
    %@ taglib uri=”/TestFCKeditor” prefix=”FCK” %>
    script. type=”text/javascript” src=”/TestFCKeditor/FCKeditor/fckeditor.js”>/script>
    %–
    三种方法调用FCKeditor
    1.FCKeditor自定义标签 (必须加头文件 %@ taglib uri=”/TestFCKeditor” prefix=”FCK” %> )
    2.script脚本语言调用 (必须引用 脚本文件 script. type=”text/javascript” src=”/TestFCKeditor/FCKeditor/fckeditor.js”>/script> )
    3.FCKeditor API 调用 (必须加头文件 %@ page language=”java” import=”com.fredck.FCKeditor.*” %> )
    –%>
    %–
    form. action=”show.jsp” method=”post” target=”_blank”>
    FCK:editor id=”content” basePath=”/TestFCKeditor/FCKeditor/”
    width=”700″ height=”500″ skinPath=”/TestFCKeditor/FCKeditor/editor/skins/silver/”
    toolbarSet = “Default”>
    内容
    /FCK:editor>
    input type=”submit” value=”Submit”>
    /form>
    –%>
    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 FCKeditor = new FCKeditor('content? ;
    oFCKeditor.BasePath = “/TestFCKeditor/FCKeditor/” ;
    oFCKeditor.Height = 400;
    oFCKeditor.ToolbarSet = “Default” ;
    oFCKeditor.ReplaceTextarea();
    /script>
    input type=”submit” value=”Submit”>
    /td>
    /tr>
    /table>
    /form>
    %–
    form. action=”show.jsp” method=”post” target=”_blank”>
    %
    FCKeditor oFCKeditor ;
    oFCKeditor = new FCKeditor( request, “content” ) ;
    oFCKeditor.setBasePath( “/TestFCKeditor/FCKeditor/” ) ;
    oFCKeditor.setValue( “input” );
    out.println( oFCKeditor.create() ) ;
    %>
    br>
    input type=”submit” value=”Submit”>
    /form>
    –%>
    添加文件/TestFCKeditor/show.jsp:
    %
    String content = request.getParameter(”content”);
    out.print(content);
    %>
    ====================================
    1、适时打开编辑器
    ------------------------------------
    很多时候,我们在打开页面的时候不需要直接打开编辑器,而在用到的时候才打开,这样一来有很好的用户体验,另一方面可以消除FCK在加载时对页面打开速度的影响,点击“Open Editor”按钮后才打开编辑器界面。
    实现原理:
    使用JAVASCRIPT版的FCK,在页面加载时(未打开FCK),创建一个隐藏的TextArea域,这个TextArea
    的name和ID要和创建的FCK实例名称一致,然后点击”Open Editor”按钮时,通过调用一段函数,使用
    FCK的ReplaceTextarea()方法来创建FCKeditor,代码如下:
    ------------------------------------
    script. type=”text/javascript”>
    !–
    function showFCK(){
    var FCKeditor = 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要在同一个页面里用多个编辑器的话,得一个个创建,现在有了这个外联功能,就不用那么麻烦了,只需要把工具条放在一个适当的位置,后面就可以无限制的创建编辑域了。
    要实现这种功能呢,需要先在页面中定义一个工具条的容器:div id=”xToolbar”>/div>,然后再根据这个容器的id属性进行设置。
    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 FCKeditor = 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”>
    !–
    FCKeditor = 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,接着我使用的代码如下:
    JAVASCRIPT版本:
    -------------------------------------
    script. type=”text/javascript”>
    var FCKeditor = 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();
    /script>
    -------------------------------------
    在按钮旁边加文字
    -------------------------------------
    打开 editor/js/ 两个js文件
    fckeditorcode_gecko.js
    fckeditorcode_ie.js
    第一个是支持非ie浏览器的
    第二个文件是支持ie浏览器的
    搜索 FCKToolbarButton,可以看到许多类似这样的语句:
    case ‘Save':B = new FCKToolbarButton('Save', FCKLang.Save, null, null, true, null, 3); break;
    ‘Save'是按钮英文名字
    FCKToolbarButton 的四个参数分别是:
    按钮命令名称,按钮标签文字,按钮工具提示,按钮样式,按钮是否在源代码模式可见,按钮下拉菜单其中将第4项参数设置为 FCK_TOOLBARITEM_ICONTEXT 即可使按钮旁边出现文字,注意没有引号。
    例如:
    case ‘Preview':B = new FCKToolbarButton('Preview', FCKLang.Preview, null, FCK_TOOLBARITEM_ICONTEXT, true, null, 5);
    这样我们就可以将 我们经常用的3种模式源代码、预览、全屏编辑按钮都加上文字了。
    解释fck样式的工作原理
    -------------------------------------
    fck的样式设置涉及到了两个文件,一个是你定义好的样式表文件.css,另一个是告诉fck样式表如何使用的xml文件,两个文件确一不可。
    css文件的位置是不做要求的,但是需要你在应用的编辑器的页面上插入样式表文件的链接。这样才能显示出来样式。
    fckstyles.xml 在与editor目录同级的目录下。该文件定义了那些样式可以使用在那些标签里面。
    这就是fck自带的样式xml定义:
    ?xml version=”1.0″ encoding=”utf-8″ ?>
    Styles>
    Style name=”Image on Left” element=”img”>
    Attribute name=”style” value=”padding: 5px; margin-right: 5px” />
    Attribute name=”border” value=”2″ />
    Attribute name=”align” value=”left” />
    /Style>
    Style name=”Image on Right” element=”img”>
    Attribute name=”style” value=”padding: 5px; margin-left: 5px” />
    Attribute name=”border” value=”2″ />
    Attribute name=”align” value=”right” />
    /Style>
    Style name=”Custom Bold” element=”span”>
    Attribute name=”style” value=”font-weight: bold;” />
    /Style>
    Style name=”Custom Italic” element=”em” />
    Style name=”Title” element=”span”>
    Attribute name=”class” value=”Title” />
    /Style>
    Style name=”Code” element=”span”>
    Attribute name=”class” value=”Code” />
    /Style>
    Style name=”Title H3″ element=”h3″ />
    Style name=”Custom Ruler” element=”hr”>
    Attribute name=”size” value=”1″ />
    Attribute name=”color” value=”#ff0000″ />
    /Style>
    /Styles>
    每一个style>将来会生成一个样式的菜单项。name名称就是显示在菜单里的文字;element定义了该样式可以应用在那种 html标签上,Attribute>的 name 指定了将会修改标签的哪个属性来应用样式,value则是修改成的值。
    看这个:
    Style name=”Title” element=”span”>
    Attribute name=”class” value=”Title” />
    /Style>
    如果你在fck选定了文字 “经典论坛 》 前台制作与脚本专栏 》 FCKeditor 实战技巧 - 1 》 编辑帖子” 应用该样式 则原来文字就会变成span class=”Title”>经典论坛 》 前台制作与脚本专栏 》 FCKeditor 实战技巧 - 1 》 编辑帖子/span>
    注意:如果编辑器呈整页编辑状态,那么整页里面也需要插入样式表链接才能显示出来样式。
    ============================================
    FCKeditor JavaScript. API(翻译整理)
    原文地址:http://wiki.fckeditor.net/Developer%27s_Guide/Javascript_API
    --------------------------------------------
    FCK 编辑器加载后,将会注册一个全局的 FCKeditorAPI 对象。
    FCKeditorAPI 对象在页面加载期间是无效的,直到页面加载完成。如果需要交互式地知道 FCK 编辑器已经加载完成,可使用“FCKeditor_OnComplete”函数。
    script. type=”text/javascript”>
    function FCKeditor_OnComplete(editorInstance) {
    FCKeditorAPI.GetInstance('FCKeditor1′).Commands.GetCommand('FitWindow').Execute();
    }
    /script>
    在当前页获得 FCK 编辑器实例:
    var Editor = FCKeditorAPI.GetInstance('InstanceName');
    从 FCK 编辑器的弹出窗口中获得 FCK 编辑器实例:
    var Editor = window.parent.InnerDialogLoaded().FCK;
    从框架页面的子框架中获得其它子框架的 FCK 编辑器实例:
    var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');
    从页面弹出窗口中获得父窗口的 FCK 编辑器实例:
    var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');
    获得 FCK 编辑器的内容:
    oEditor.GetXHTML(formatted); // formatted 为:true|false,表示是否按HTML格式取出
    也可用:
    oEditor.GetXHTML();
    设置 FCK 编辑器的内容:
    oEditor.SetHTML(”content”, false); // 第二个参数为:true|false,是否以所见即所得方式设置其内容。此方法常用于“设置初始值”或“表单重置”操作。
    插入内容到 FCK 编辑器:
    oEditor.InsertHtml(”html”); // “html”为HTML文本
    检查 FCK 编辑器内容是否发生变化:
    oEditor.IsDirty();
    在 FCK 编辑器之外调用 FCK 编辑器工具条命令:
    命令列表如下:
    --------------------------------------------
    DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo
    --------------------------------------------
    使用方法如下:
    --------------------------------------------
    oEditor.Commands.GetCommand('FitWindow').Execute();
    -----------------------------------

    !--[if !supportEmptyParas]--> !--[endif]-->

    上一篇:Windows Live Writer 实现代码高亮
    下一篇:FCKEidtor 自动统计输入字符个数(IE)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    FckEditor 中文配置手册详细说明 FckEditor,中文,配置,手册,