• CKEditor/FCKEditor常见问题

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 前言:

    CKEditor 是著名的 HTML 编辑器,IBM、Oracle、Adobe 等都在用。CKEditor 创建于 2003 年,其前身为 FCKEditor,在 2009 年的时候把“F”去掉了,更名为 CKEditor。其开源协议是基于 GPL, LGPL 和 MPL 的。官方网站:http://ckeditor.com/

    一般来说,我们在编辑内容时,先是读入到 textarea,再将 textarea 的内容赋给编辑器。因为直接把内容作为字符串给编辑器的 Value 属性赋值使用的是 JavaScript 代码,要让 JS 代码不受内容中双引号、换行等的干扰,只有先读入到 textarea 最方便。

     

    • 使用 CKeditor 3.0.1
    <textarea  cols="90" rows="10" id="content" name="content">cftea</textarea>
    <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
    <script type="text/javascript">
    <!--
        CKEDITOR.replace("content");
    //-->
    </script>

    可以看出,3.x 版本的使用非常方便,也不用担心会形成两个同名的 content。实际上 textarea 的 id 省略了也是可以的,因为 CKEditor 会先按 name 来查找,查找不到,再按 id 来查找。

    并且编辑器会在 textarea 的位置替换原有的 textarea。

    • 设置编辑器皮肤、宽高
    <textarea  cols="90" rows="10" id="content" name="content">cftea</textarea>
    <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
    <script type="text/javascript">
    <!--
        CKEDITOR.replace("content",
          {
              skin: "kama", width:700, height:300
          });
    //-->
    </script>

    skin 值应该是 ckeditor/skins 文件夹下的某个文件夹名称,如果指向不存在的皮肤,则不会显示编辑器。

    • 设置值、取值

    设置值

    CKEDITOR.instances.content.setData("输入文字"); // content 就是前面 CKEDITOR.replace 的第一个参数值

    var editor = CKEDITOR.replace("content");
    editor.setData("输入文字");

    取值

    alert(CKEDITOR.instances.content.getData()); // content 就是前面 CKEDITOR.replace 的第一个参数值

    var editor = CKEDITOR.replace("content");
    alert(editor.getData());

     

    去除换行符

    值得注意的是,当从后台传送字符串到CKEDITOR中的时候需要将\r\n去除,否则的话会出现unexpected token的错误,可能是CKEDITOR不认这个吧。Anyway, 添加上例子。

     

    String selectContent = (String)request.getAttribute("selectContent");

    selectContent = selectContent.replaceAll("\\\r", "");  //去除\r\n不然CKEDITOR无法加载

    selectContent = selectContent.replaceAll("\\\n", "");

     

     

    • 插入图片

    若要演示此示例,最好是放在按钮的事件处理程序中,目的是有些延迟。

    CKEDITOR.instances.content.insertHtml("<img src=...>");
     
    • [CKEDITOR.editor] The instance " " already exists.

    if (CKEDITOR.instances['editor']) {
       //CKEDITOR.remove(CKEDITOR.instances['editor']); //Does the same as line below
       delete CKEDITOR.instances[editor'];
       }
    CKEDITOR.replace('editor');//弹出蒙版,删掉此句

     
    • 标签:
    • selectcontent
    • 编辑器
    • CKEditor
    • textarea
    • 取值
    • ckeditor
    • content
    • javascript
    • FCKEditor
    • 赋值
    • ckeditor.replace
    • editor&#39
    • id
    • 内容
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部