富文本编辑器CKEditor4迁移方案 之前写过 《富文本编辑器wangEditor迁移CKEditor前后效果对比》 ,结合大家的反馈后进行了调整。
增加了具体案例的展示CKEditor插件和事件系统,重新整理成迁移方案。
一、背景
老版本富文本编辑器wangEditor的工具栏如图所示
新版本富文本编辑器CKEditor4工具栏如图所示
老版本编辑器有以下常见业务场景不支持:
先设置字体字号CKEditor自动加载内联编辑器引发的故障记录 在一次项目优化过程中,我采取了按需加载的策略,将对CKEditor入口JS文件的加载过程移动到了点击回复邮件之后,这样的话,当用户没有编辑邮件的需求时就不用加载CKEditor相关的JS文件了。但是因为这一个改动,引起了意想不到的问题。
因为我们的项目中IM聊天页面也用到了简易的富文本编辑,使用的也是contenteditable的div来实现的,问题也是因此而出现的。我们先简单介绍下CKECKEditor系列(六)改造原编辑器默认样式dom结构效果对比 熟悉的朋友应该知道之前是用的wangEditor,近期才迁移到CKEditor,很早的时候项目就支持一个叫“默认样式”的功能,需求就是部分BU希望能够统一邮件对外发送的样式,比如统一使用“宋体,黑色,18px”。
之前在wangEditor上是这么实现的
<p class="default-email-style" style="marginCKEditor系列(五)编辑器内容的设置和获取过程 我们看一下CKEditor4的编辑器内容的设置和获取过程,也就是setData和getData过程。
我们在调用 editor.setData 的时候,调用的就是 core/editor.js 里面的 setData 方法。
// src/core/editor.js
setData: function( data, options, internal ) {
var fire富文本编辑器wangEditor迁移CKEditor前后效果对比 一、背景
富文本编辑器wangEditor的工具栏如图所示
富文本编辑器CKEditor4工具栏如图所示
二、wangEditor编辑器存在问题
1. 字号和字体设置不友好
客服反馈无法快速通过工具栏图标找到设置字号、字体的功能
老版编辑器设置字体(或字号)与许多主流编辑器及Office软件操作有所不同,不支持先设置字体(或字号)再进行输入文字,只能先选中CKEditor系列(四)支持动态多语言i18n 多语言文件结构
先看下CKEditor4的多语言文件长什么样子
//src/lang/zh-cn.js
CKEDITOR.lang[ 'zh-cn' ] = {
editor: '所见即所得编辑器',
common: {
editorHelp: '按 ALT+0 获得帮助&CKEditor系列(三)粘贴操作是怎么完成的 在上一篇文章 CKEditor系列(二)事件系统是怎么实现的 中,我们了解了CKEditor中事件系统的运行流程,我们先简单回顾下:
用户注册回调函数时可以指定优先级,值越小的优先级越高,默认是10
系统会根据用户的传参组装成系统规范的回调函数,供后续执行
执行回调函数时可以将取消事件和阻止事件,不让其它监听该事件的回调函数执行。
当插件希望对paste事件进行响应,一般CKEditor系列(二)事件系统是怎么实现的 CKEditor的事件系统的源代码在core/event.js里面
我们看看整个事件系统的实现过程
事件监听on
CKEDITOR.event.prototype = ( function() {
// Returns the private events object for a given object.
var getPrivate = function( objCKEditor系列(一)CKEditor4项目怎么跑起来的 我们先看CKEditor的入口ckeditor.js,它里面有一部分是压缩版,压缩版部分对应的源码地址为src/core/ckeditor_base.js
// src/core/ckeditor_base.js
if ( !window.CKEDITOR ) {
window.CKEDITOR = ( function() {
var basePathSrcPattern 关注道招网公众帐号

联系博主
