zoukankan      html  css  js  c++  java
  • FCKEditor使用说明

    1.基本设置
     
    先看看效果是什么样的:
     
    效果图:

    那么为什么说是FCKeditor的冰冷之心呢?这不是哗众取宠,主要是说它使用起来有点麻烦,下文就详细说明如何搞定这玩意儿。

    1.FCKeditor的官方网站是:http://www.fckeditor.net/download
      下载地址:
    http://sourceforge.net/project/showfiles.php?group_id=75348
    如图所示:

    要下载FCKeditor2.4.2.zip和   FCKeditor.NET版的2个zip包。

    说明:
    FCKeditor2.4.2.zip是其最新的Javascript文件和图片什么的;
    FCKeditor.NET.zip是ASP.NET调用的DLL在里面。

    2.分别解压后把FCKeditor2.4.2.zip里的fckeditor目录整个复制到网站中。

    3.解压FCKeditor.NET.zip包后在FCKeditor.Net_2.2\bin\Debug目录里找到FredCK.FCKeditorV2.dll。其他文件没用,把FredCK.FCKeditorV2.dll复制到我们的网站,建立一个Bin目录

    4.引用FredCK.FCKeditorV2.dll。
    第一步:

    第二步:

    5.导入工具箱。
    在“工具箱”下右键

    点击“选择项”。弹出如图窗口:


    点击浏览,找到dll所在目录。

    这时发现工具箱里多出FCKeditor控件。

    6.拖拽FCKeditor到页面上

    7.配置WebConfig
    <?xml version="1.0"?>
    <!--
        注意: 除了手动编辑此文件以外,您还可以使用
        Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
         “网站”->“Asp.Net 配置”选项。
        设置和注释的完整列表在
        machine.config.comments 中,该文件通常位于
        \Windows\Microsoft.Net\Framework\v2.x\Config 中
    -->
    <configuration>
    <appSettings>

        <add key="FCKeditor:BasePath" value="~/fckeditor/"/>

        <add key="FCKeditor:UserFilesPath" value="/Files/" />

    </appSettings>

    <connectionStrings/>
    <system.web>

    说明:BasePath是fckeditor所在路径,fckeditor由于我们直接放网站目录下这样写就可以,如果您的网站多放几层适当调整即可。
                UserFilesPath所有上传的文件的所在目录。为什么要设置成/Files这样而不是~/Files因为FCKeditor使用这个值来返回你上传后的文件的相对路径到客户端。否则的话客户访问的时候就会取客户的机器目录而不是http形式的目录。

    建议:Files要单独做wwwroot目录下的一个站点比较好,和我们的站点FCKEditor平行。不要把它放FCKEditor里,为什么呢?因为Files是要让客户有写的权限的,如果放FCKEditor下很危险。

    8.Files目录要有的权限。你根据自己网站需求设置那个帐号,本文为方便设置User实际中你可能用ASP.NET帐号更合理。

    9.修改fckeditor/fckconfig.js文件
    在第182行的位置
    var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
    var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
    改为
    var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
    var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php

    10.FCKeditor给其瘦身。以_打头的的都是范例文件或源文件,不过建议小心。

    11.下面以上传图片示例说明如何使用,

    点击“浏览服务器”。

    弹出窗口很容易报错

    如果报错XML request error: Internal Server Error(500),很可能就是目录路径不对和写权限没有。

    选择图像



    最后效果

    前台代码:

    <%@ Page Language="C#" validateRequest=false AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>FCKeditor文本编辑器</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <fckeditorv2:fckeditor id="FCKeditor1" runat="server" DefaultLanguage="zh-cn" Height="400px" Width="660px"
    ></fckeditorv2:fckeditor>

       
        </div>
        </form>
    </body>
    </html>

    怎么样获取结果呢?FCKeditor1.Value就是。

    2.常用配置

    这里主要包括了以下内容:

    • Configuration File     配置文件
    • Toolbar    工具栏

    配置文件:

    这个编辑器包括了丰富的配置选项,所以你可以自定义它的显示方式,特色,和行为,主配置文件是 “fckconfig.js”,你可以在安装目录的根目录找到.

    重写默认的配置文件:

    你 可以直接编辑方配置文件,你也可以在不同的文件夹中重写默认的配置文件,Javascript是用来配置FCKeditor的,为了简单的升级你站点中的 FCKeditor,最好的方式就是把你的所有的配置文件放到一个独立的配置文件中,并且该文件不在根目录下,这样的话,你只需要覆盖安装目录就可以升级 了.

    首先,你可以创建一相文件,比方说叫做 “myconfig”并且保存在你在根目录下(或者任何其它的目录),你的自定义设置将会放在这里,比方说你想要设置你的编辑器一直以法文显示,你只要写 下面的代码到你在文件中.FCKConfig.AutoDetectLanguage = false ;

    FCKConfig.DefaultLanguage = "fr" ;

    其次,你需要告诉编辑器去加载你的自定义配置,这里有两种方法

    第 一种,在fckeditor.js中找到后面的一行,FCKConfig.CustomConfigurationsPath = '' ;并且在路径中加入你自定义配置文件的位置,如:FCKConfig.CustomConfigurationsPath = '/myconfig.js' ;这种方法是好的,但是你可以想像,在不改变原始文件方面,你缺少了灵活性.但是不管怎样,你只要记住需要改变的只有一行,其它的改变都还是独立的.

    第 二种,这是一种能够达到上述效果,并且更为好的方法,你不需要更改原来的配置文件fckeditor.js,你可以直接设置你的自定义在使用编辑器的地 方,下面是达到这个目标的一小段javascript代码:var oFCKeditor = new FCKeditor( "FCKeditor1" ) ;

    oFCKeditor.Config["CustomConfigurationsPath"] = "/myconfig.js" ;

    oFCKeditor.Create() ;

    你可以使用你想用的语言达到同样地效果,你只需要看看例子,找到怎样使用代码去配置编辑器.

    配置加载过程:

    当重载配置文件的时候,我们会经历下面的步骤

    1.在主配置文件(fckeditor.js)中的配置加载;

    2.如果提供了自定义的配置文件,那么,这些配置文件要进行加载;

    3.除了用"CustomConfigurationsPath" 配置的内容在第一步之后加载外,在页面内的配置文件加载完毕.

    注意:你需要保留原始的配置文件在根目录下,否则的话,fckeditor就会出问题了.

    浏览器缓存:在对配置文件做更改试试更改之后,请记住清空浏览器缓存,否则的话,你就不会看到你做得更改.当在代理环境下工作时,这就更显得重要了,你的代理可能会保存更长时间的js文件,这里有一些建议可以用来更新最新的配置文件:

    如果你使用的是IE,使用CTRL+F5应该就可以清空js文件的缓存了,并且加载js到最新的配置.

    如果你使用的是firefox或者mozilla子项目下的浏览器,一般情况下,使用Shift+CTRL+R可以加载最新的js配置文件;如果失败的话,你就要手动清空缓存了.

    在自定义配置文件的路径之后,你可以添加几行代码,这样浏览器每次运行就必须加载它们了,如

    var oFCKeditor = new FCKeditor( "FCKeditor1" ) ;

    oFCKeditor.Config["CustomConfigurationsPath"] = "/myconfig.js?" + ( new Date() * 1 ) ;

    oFCKeditor.Create() ;

    工具栏配置:

          配置你需要的工具栏是一件十分简单的事情,只要在配置文件"FCKConfig.ToolbarSets" 中修改或者填加新的选项;当然了,你也可以创建你自己的配置文件。

          你可以看一下fckconfig.js ,看看这两个简单的工具栏定义。

    //默认配置

    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','-','Subscript','Superscript'],

    ['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']

    ] ;

    工具栏集合:

          每一个工具栏设置都包含有一组工具栏集合,每一个工具栏集合都在一个不同的层上,当你重新设置editor大小时,工具栏集合就会一起移动。你可以在上面 工具栏定义看到,每一个工具栏集合都被定义成一个javaScript字符串数组,每一个字符串都对应了在代码中定义的一个小工具,或者一个插件。如果这 个小工具不存在,则在编辑器加载的时候,就会给出错误提示。你也可以通过在工具栏定义中填加 “-” 字符串,以在工具栏集合中包括一个分隔符。

    强迫工具栏集合换行:

          看看默认工具栏的定义,你会发现在某一行使用 “/” 代替一个数组,这个标记可以告诉编辑器,你想要下一个工具栏集合换到另一行。

    自定义工具栏:

          在fckconfig.js 的配置文件中已经包括了”Default” 和“Basic” 两个工具栏,你可以修改它们,当然,你也可以创建新的自定义工具栏。例如,你可以创建名为”MyToolbar”的工具栏,只需要在默认的配置文件中加入 下面内容,当然,你也可以在自定义的配置文件中加入。FCKConfig.ToolbarSets["MyToolbar"] = [

    ['Cut','Copy','Paste','PasteText','PasteWord'],

    ['Undo','Redo','-','Bold','Italic','Underline','StrikeThrough'],

    '/',

    ['OrderedList','UnorderedList','-','Outdent','Indent'],

    ['Link','Unlink','Anchor'],

    '/',

    ['Style'],

    ['Table','Image','Flash','Rule','SpecialChar'],

    ['About']

    ] ;

    现在,你需要在创建编辑器实例的时候设置你的工具栏,下面就是在不同语言中定义工具栏的一些例子。JavaScript

    <script type="text/javascript">

    var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;

    oFCKeditor.ToolbarSet = 'MyToolbar' ;

    oFCKeditor.Create() ;

    </script>

    PHP

    $oFCKeditor->ToolbarSet = 'MyToolbar';

    JSP (Java)

    <FCK:editor id="EditorDefault" toolbarSet="MyToolbar"></FCK:editor>

    ASP

    oFCKeditor.ToolbarSet = "MyToolbar"

    ASP.NET

    <FCKeditorV2:FCKeditor id="FCKeditor2" ToolbarSet="MyToolbar" runat="server" />

    ColdFusion

    fckEditor.toolbarSet = "MyToolbar";

    额外的注意事项:

    在自定义工具栏时通常犯的错误是,只记得从默认工具栏中移去你不要的元素,包括About的菜单,留下最后一行仅仅是一个逗号。所以你要记住的是最后一个工具栏集合最后没有逗号。

    记住清空浏览器缓存,否则,你对配置文件做更改的时候,你将看不到变化,你也不知道为什么。

    工具栏的行为:

    开始行为:

    当编辑器加载的时候,你可以决定它的显示方式。工具栏默认情况可以是展开的,也可以是合上的。如果你想要改变工具栏的显示方式,你可以查看ToolbarStartExpanded 选项,或者仅仅在配置文件中加入以下的代码,记住,‘true’设置为展开,'false'设置为合上。

    FCKConfig.ToolbarStartExpanded = true ;

    工具栏收起:

    当使用编辑器的时候,你可以选择是否允许闭合工具栏。你可以查看ToolbarCanCollapse 的选项,或者在配置文件中声明,'true'为允许,'false'为不允许。

    FCKConfig.ToolbarCanCollapse = false;

    3.使用js获取值

     FCKeditorAPI是FCKeditor加载后注册的一个全局对象,利用它我们就可以完成对编辑器的各种操作。

    EditorName是页面中可编辑区域元素的id比如:
    <TEXTAREA id="texterea1" name="content" rows="30" cols="420"><c:out value="${content}"/></TEXTAREA>
    EditorName就是texterea1了

    // 获取编辑器中HTML内容
    function getEditorHTMLContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.GetXHTML(true));
    }

    // 获取编辑器中文字内容
    function getEditorTextContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.EditorDocument.body.innerText);
    }

    // 设置编辑器中内容
    function SetEditorContents(EditorName, ContentStr) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
    oEditor.SetHTML(ContentStr) ;
    }

     4.兼容问题


    升级到 IE 9后,fckeditor在IE 9里的弹出浮动层会出现bug,里面的内容不会出现。所以无论是想在页面编辑器里粘贴内容,还是上传图片等凡是需要弹出窗口操作的东西都会有问题,想要进行其它的操作也只能重新刷新页面。原因是 IE 9 不支持var $=document.getElementById;这样的写法了。
    解决方法可以这么来做:
    打开这个文件, fckeditor/editor/js/fckeditorcode_ie.js ,找到第 38行的这个方法:FCKTools.RegisterDollarFunction
    将原来的
    FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};
    修改方法为:
    FCKTools.RegisterDollarFunction=function(A){A.$=function(v){return A.document.getElementById(v);}};
    亲自做了实验,结果理想。

    在IE10中会遇到不支持selectSingleNode属性的问题,解决方法是在fckeditorcode_ie.js文件中的B.open(“GET", A, false); 和 B.send(null);这两句之间加上try { B.responseType = ‘msxml-document’; } catch (e) { },可以解决问题,本人亲自验证。

    作者:Tyler Ning
    出处:http://www.cnblogs.com/tylerdonet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

  • 相关阅读:
    【NOIP2007】守望者的逃离
    20200321(ABC)题解 by 马鸿儒 孙晨曦
    20200320(ABC)题解 by 王一帆
    20200319(ABC)题解 by 王一帆 梁延杰 丁智辰
    20200314(ABC)题解 by 董国梁 蒋丽君 章思航
    20200309(ABC)题解 by 梁延杰
    20200307(DEF)题解 by 孙晨曦
    20200306(ABC)题解 by 孙晨曦
    20200305(DEF)题解 by 孙晨曦
    20200303(ABC)题解 by 王锐,董国梁
  • 原文地址:https://www.cnblogs.com/tylerdonet/p/3032980.html
Copyright © 2011-2022 走看看