相关资源

1. 首页地址:http://ckeditor.com/

2. 下载地址:http://ckeditor.com/download

3. SDK地址:http://sdk.ckeditor.com/

如何开始

1、选择位置,放置CKEditor的包

如:放置在webapp/plugin路径下,其中webapp是web项目的根目录。

2、在页面中引入ckeditor.js

<script type="text/javascript" src="${pageContext.request.contextPath}/plugin/ckeditor/ckeditor.js"></script>

3、在页面中定义textarea,定义id和name属性

<textarea id="editor" name="content"></textarea>

4、激活控件

在页面加载完成后调用下述语句:

CKEDITOR.replace("editor"); // 指定textarea的id或name

如果顺利,可以看到效果:

补充:

1. 激活控件需要指定textarea的id或name,优先使用id,name用于作为请求参数的key。

2. 激活控件之后,原textarea隐藏,CKEditor取代textarea展示。控件中输入的内容和隐藏的textarea的内容不是实时同步的,目前所知,表单提交前是会同步的,后台根据textarea的name获取的参数值和ckeditor的输入是一致的。

3. 如果想在js随时获取控件的内容,可以使用下述的语句:

var value = CKEDITOR.instances.editor.getData();

注意:editor是CKEDITOR的一个instance,与激活控件时传入的字符串一致。

自定义配置

ckeditor/config.js文件用于CKEditor的配置。刚下载下来时,内容如下:

/**
* @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/ CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'fr';
// config.uiColor = '#AADC6E';
};

我们需要自定义配置,写在方法里。

配置工具栏

CKEditor划分了三个版本,支持详简不同的工具栏。如果我们需要在此基础上进行配置,可以使用下载包里提供的配置工具,直接以本浏览器打开/ckeditor/samples/toolbarconfigurator/index.html

工具栏的层级划分:行 — 工具条 — 组 — 项目。行与行之间,以row separator分隔;工具条之间有明显的间距;组之间有竖线。

配置完成之后,点击Get toolbar config按钮,可以得到一份源码,将源码copy到config.js中,就实现了工具栏的配置。

字体配置

config.font_names = '宋体/SimSun;新宋体/NSimSun;仿宋/FangSong';

如:将上述代码复制到config.js的方法中,可以配置控件的字体分别为宋体、新宋体、仿宋。

控件可以配置多个字体实体,字体之间以;分隔。字体又分显示名和设置名之别,以/分隔;显示名用于在控件中显示,设置名用于设置对应的font-family,所以设置名不能随意填写。如,按照上述的配置,选择了新宋体之后,输出的代码为style="font-family:nsimsun"

font-family可以设置多个字体的序列,所以控件的一个字体实体,可以有多个输出名,以,分隔。如:

config.font_names = 'Times New Roman/Times New Roman, Times, serif';

换行模式配置

在默认的情况下,Enter键是添加一个p标签,而Shift+Enter是添加一个br标签。控件提供了三种模式:

1. CKEDITOR.ENTER_P

新增一个p标签

2. CKEDITOR.ENTER_BR

新增一个br标签

3. CKEDITOR.ENTER_DIV

新增一个div标签


控件使用下述的参数名来配置模式:

1. enterMode

配置单击Enter键的模式

2. shiftEnterMode

配置Shift + Enter组合键的模式


如下述代码:

config.enterMode = CKEDITOR.ENTER_BR; // 配置Enter是换行
config.shiftEnterMode = CKEDITOR.ENTER_P; // 配置Shift + Enter是换段落

更多配置

参考CKEDITOR.config的API。

配置的方式

除了上文中描述的,直接修改config.js文件,还有另外两种配置的方式。

1. 激活时配置

CKEDITOR.replace( 'editor', {
language: 'fr',
uiColor: '#9AB8F3'
});

2. 自定义配置文件

CKEDITOR.replace( 'editor1', {
customConfig: '/custom/ckeditor_config.js'
});

要求自定义配置文件的结构和默认的config.js一致。

功能试炼

1、初始最大化

CKEDITOR.editor有事件instanceReady,CKEDITOR.editor#on( 'instanceReady', function(evt) )可以捕捉控件初始化完成的时机;

CKEDITOR.instances.editorId可以获取指定editorId的CKEDITOR.editor实例;

CKEDITOR.editor#execCommand( commandName, [data] )用于执行命令,'maximize'是最大化命令;

结合以上知识,我们可以得到代码

CKEDITOR.instances.editor.on('instanceReady', function (e) {
CKEDITOR.instances.editor.execCommand('maximize'); // 初始最大化
});

2、获取控件的富文本内容

CKEDITOR.editor#getData()可用于获取富文本的内容

var value = CKEDITOR.instances.editor.getData();

3、打印预览

CKEDITOR.instances.editor.execCommand('preview');  // 预览
CKEDITOR.instances.editor.execCommand('print'); // 打印


关于execCommand的说明

"maximize"是最大化的命令,"preview"是预览的命令,"print"的命令。大家一定想要一份command的清单,求知有哪些命令可供我们使用。很遗憾,我没有找到这样的清单,通过走读源码,在ckeditor.js中,会调用CKEDITOR.plugins.add( {String}name, {Object}[definition] )来注册资源,"maximize"、"preview"、"print"都在其中。

通过关键字匹配,共有72个资源:

dialogui, dialog, about, a11yhelp, dialogadvtab, basicstyles, bidi, blockquote, clipboard, button, panelbutton, panel, floatpanel, colorbutton, colordialog, templates, menu, contextmenu, div, resize, toolbar, elementspath, enterkey, entities, popup, filebrowser, find, fakeobjects, flash, floatingspace, listblock, richcombo, font, forms, format, horizontalrule, htmlwriter, iframe, wysiwygarea, image, indent, indentblock, indentlist, smiley, justify, menubutton, language, link, list, liststyle, magicline, maximize, newpage, pagebreak, pastetext, pastefromword, preview, print, removeformat, save, selectall, showblocks, showborders, sourcearea, specialchar, scayt, stylescombo, tab, table, tabletools, undo, wsc

 

Technorati 标签: CKEditor使用,CKEditor配置

CKEditor使用笔记的更多相关文章

  1. fancybox,Ckeditor,jscrollpane 笔记串烧

    有用到一些插件,整理了一些笔记,分享一下. 一.Fancybox 很酷很强大的弹窗插件 官网地址:Fancybox,基于jquery,开源协议是GPL和MIT. 主要的特点是:能展示图片,html元素 ...

  2. 解决Ckeditor编辑器不显示html实体,自动过滤html的问题

    Ckeditor 4.5.4,在编辑的时候,使用源码编辑,当保存内容包含Javascript.Style标签的时候,数据库中有Javascript.Style标签,输入到页面也可以执行,但是我再次编辑 ...

  3. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

  4. angular2 学习笔记 ( 第3方插件 jQuery and ckeditor )

    refer : https://forums.meteor.com/t/importing-ckeditor-using-npm/28919/2   (ckeditor) https://github ...

  5. 页面可视化编辑ckeditor(web基础学习笔记十五)

    一.CKedit下载ckedit 下载地址:http://ckeditor.com/ 二.ckedit的引入 2.1.解压并将ckedit复制到项目中 2.2.在页面中引入 在页面头部加入 <s ...

  6. ASP.Net开发基础温故知新学习笔记

    申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在H ...

  7. jsp&servlet学习笔记

    1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...

  8. CKeditor的简单使用

    由于项目中要使用ckeditor 做个推荐功能,由于值设定到文本内容,就选择最基本的使用. 使用的版本为当前最新版本4.4.7,你需要下载两部分,一个是前台使用,一个是后台使用, 你可以到我的网盘中下 ...

  9. Angularjs 与Ckeditor

    Angularjs 与Ckeditor Angularjs 诞生于Google是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块 ...

随机推荐

  1. [MCSM] 蒙特卡罗统计方法

    起因 最开始的时候,写多了LDPCC误码率的仿真,心中便越来越有了疑惑.误码率仿真,多为Monte Carlo仿真,其原理是什么,仿真结果是否可靠,可靠程度是多少,如何衡量其可靠性这些问题我都很不清楚 ...

  2. Ajax基础详解1

    Ajax也是前端必备技能了,学习任何语言,都需要以理论为基础的大量实践才能真正学会,之前学了Ajax很多遍,因为缺乏大量实践,总是会忘.所以不实践是失败之母...当然理论基础也很重要啦,今天谈谈我对A ...

  3. Jquery.validate.js表单验证插件的使用

    作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...

  4. windows API 开发飞机订票系统 图形化界面 (三)

    来吧,接下来是各个功能的函数的实现代码. 首先,程序运行时加载读入账户信息和航班信息.接下来就该读取文件了. 我把账户资料和航班信息储存在了.txt文件里 那么问题就来了,挖掘机...额,不对,应该怎 ...

  5. JavaScript 里 new 出来的对象 怎么销毁它?

    JavaScript的规范(ECMA-262 ECMAScript)没规定JavaScript引擎要如何实现对JavaScript对象的内存管理.实际实现中几乎所有JavaScript引擎都使用基于跟 ...

  6. Linq之IQueryable接口与IEnumberable区别

    IEnumerable接口 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代.也就是说:实现了此接口的object,就可以直接使用foreach遍历此object: IEnumerable 包含 ...

  7. xml基本操作

    在实际项目中遇到一些关于xml操作的问题,被逼到无路可退的时候终于决定好好研究xml一番.xml是一种可扩展标记语言,可跨平台进行传输,因此xml被广泛的使用在很多地方. 本文由浅入深,首先就xml的 ...

  8. OC基础--成员变量的封装

    一.封装的作用: 1.重用 2.不必关心具体的实现 3.面向对象三大特征之一 4.具有安全性 二.OC中成员变量的命名规范以及注意事项 1.命名规范--.成员变量都以下划线“_”开头 1)为了跟get ...

  9. C# AttributeUsage的使用浅析

    C# AttributeUsage的使用是如何的呢?首先让我们来了解一下什么是AttributeUsage类它是另外一个预定义特性类,AttributeUsage类的作用就是帮助我们控制定制特性的使用 ...

  10. Emmet

    一.简介 Emmet (前身为 Zen Coding) ,不是软件也不是代码,是编辑器(如sublime text)的插件,相应的后缀文件(.html/.css)输入指定的缩写语法,按下tab键就能生 ...