2022年CKEditor插件开发 .pdf
《2022年CKEditor插件开发 .pdf》由会员分享,可在线阅读,更多相关《2022年CKEditor插件开发 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CKEditor 插件开发星期二7/27/2010 发布在Tutorial | 评论From: http:/ API: http:/ 是目前市场上比较灵活的在线WYSIWYG编辑器之一 . 它灵活的设计 , 开放的 API 和详细的文档使得用户扩展功能非常容易. 本文尝试勾勒出CKEditor插件开发的基础,包含了增加按钮,对话框和执行命令 . 源 代 码 的 结 构在开始之前,感性的认知一下CKEditor源码的组织形式是很有用的. CKEditor固有的一些文件被组织到ckeditor_source目录里 . 核心的功能,诸如DOM 元素操作,事件处理,初始化脚本和一些环境设置被包含在ck
2、editor_sourcecore文件夹内 . 而其它的一些功能, 比如格式化,拷贝和粘贴, 图片和链接 , 都被实现为插件形式放在ckeditor_sourceplugins文件夹内 . 每个文件夹表示一个插件. 并且在每个文件夹内 , 有一个 plugin.js的文件包含了该插件需要用到的代码. 你可以看到源代码被组织成不同的文件. 为了减少HTTP请求 , CKEditor把不同的文件压缩并打包到ckeditor.js 和 ckeditor_basic.js里, 这种方式是运行编辑器的默认方式. 在开发的过程中, 你会希望通过 ckedtior_source.js来代替 ckeditor
3、.js 的执行 . 现在 , 创建 ckeditor_sourcepluginsfootnote目录,并在目录里创建plugin.js文件 . 配 置 插 件为了开始开发你的插件, 你需要首先注册你的插件,这样CKEditor才能载入它 . 在 ckeditor/config.js里,增加 : config. extraPlugins= footnote;此配置将会告诉编辑器在footnote目录下载入plugin.js. 基本的 plugin.js结构如下 :CKEDITOR. plugins .add ( footnote, init: f unc tion (editor )/plugi
4、n code goe s here) ;按 钮名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - CKEditor中主要的功能的实现基本都是通过命令的形式. 命令由事件, 函数调用或者点击某个工具栏的按钮触发 . 下列代码增加了一个?Footnote? 的按钮和 ,footnote? 的命令 . CKEDITOR. plugins .add ( footnote, init: f unc tion (editor )var plu
5、ginName = footnote ; CKEDITOR.dialog .add (pluginName, this .path+ dialogs /footnote.js ); editor.addCommand(pluginName, newCKEDITOR. dialogCommand(pluginName); editor.ui .addButton(Footnote, label: Footnote or Citation, command: pluginName ) ;) ;editor .ui.addButton函数声明包含了两个参数, 按钮名字和按钮定义. 在按钮定义中可能的
6、属性还包含: label: 当鼠标位于按钮之上时所出现的文字提示className: 按钮的 css 类名 . 默认为 : ,cke_button_? + 命令名称click: 当点击按钮后所调用的函数. 默认为 : 执行由命令键值指定的命令 . command: 将在按钮点击之后执行的命令上述代码利用了CKEDTIOR.dialogCommand,该函数将在下面的对话章节中介绍. 在添加了一个按钮后,你需要把 ,Footnote?增加到 config.js的工具栏的定义中, 把该按钮放到工具栏的合适的位置. 之后,你就能看到一个空的按钮出现在工具栏里. 按钮图片最简单的增加按钮图片的办法是利
7、用属性icon. 代码如下 : CKEDITOR. plugins .add ( myplugin,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - init: f unc tion (editor )/plugin code goe s here editor.ui .addButton(myplugin, label: myplugin, command: FCK Command_myplugin, icon: CKEDIT
8、OR. plugins .getPath (myplugin) + myplugin.png) ;) ;命 令CKEditor以命令的方式提供了大部分的功能. 命令和函数之间的不同是命令是有 “ ON” , “ OFF“ 和未启用状态的 . 定义一个命令editor .addCommand函数声明了两个参数, 命令名字和命令的对象定义. 可能的命令定义的属性包含: exec: 最小形式 , 定义的对象拥有一个exec方法 , 该方法会在命令执行时执行. modes: 命令能被执行的模式. 默认为 : wysiwyg:1 有效的模式是 : wysiwyg, source editorFocus:
9、 在执行命令时,是否给予编辑器焦点. 默认 : true state: 命令的状态 . 默认 : CKEDITOR.TRISTATE_OFF canUndo: 该命令是否会和redo/undo系统挂钩async: 在异步功能,例如ajax中被用到 . 在执行完命令后, afterCommandExec事件将不会被自动触发 . 它将期望程序员能够手工触发该事件. 执行命令触发命令是很简单的, 通过editor. execCommand(commandName);命令状态命令有三个状态 : ON, OFF和 DISABLED. 状态能够通过setState进行设置,例如 : editor. get
10、Command(commandName).setState(state );状态值将会是 : CKEDITOR.TRISTATE_ON, CKEDITOR.TRISTATE_OFF, CKEDITOR.TRISTATE_DISABLED 中的一个 . 当设置为未启用的时候, 按钮将会表现为灰色, 并且通过 execCommand执行的命令将无效. 当设置为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - on 的时候 , 按钮就
11、会被高亮. 当命令的状态改变的时候, 命令将会触发一个?state?事件 . 对 话 框对话框是一些插件的核心. 为了使用该对话框, 他们必须首先在plugin.js中注册 , 包括定义 , 通过调用CKEDITOR.dialog.add如下 : CKEDITOR. dialog .add (pluginName, this.path+ dialogs/pluginName.js );之后,如果你想通过点击一个按钮触发这个对话框, 你可以通过使用CKEDITOR.dialogCommand来简单的完成这项工作. editor. addCommand(pluginName, newCKEDITO
12、R. dialogCommand(pluginName) ;对话框定义按约定,有关对话框的代码将会被放到dialogs/.js中. 和按钮和命令类似, 对话框也是通过定义一些属性和方法来定义的 . 下面的代码展示了一个标准的.js 的模板 : ( f unc tion ()var exampleDialog = f unction(editor )return title : /* title in string*/, minWidth : / *number of pixels*/, minHeight : /*number of pixels*/, buttons: /*a rray o
13、f butto n de finitions*/, onOk: /*function*/,onLoad: /*function*/, onShow: /*function*/, onHide: /*function*/, onCancel: /*function*/, resizable: /* no ne,width,height or both */ , contents : /*conte nt definition, basically the UI of the dialog*/ CKEDITOR.dialog .add (insertHTML, f unction(editor )
14、 return exampleDialog(editor );) ;)();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 定义里有以下一些属性方法: Buttons 该属性定义了对话框底部可用的按钮. 它是一个CKEDITOR.dialog.buttonDefinition对象的数组 . 默认的值是 CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton . 为了增加你自
15、己的按钮, 你须要写下按钮的定义,并把它加到该数组里. 例如 : buttons: type:button, id: someButtonID, /* note: this is not the CSS ID attribute! */ label: Button, onClick: f unc tion()/action on clicking the button ,CKEDITOR. dialog .okButton, CKEDITOR. dialog .cancelButton ,效果如下 : 对话框事件onOK, onLoad, onShow, onHide, onCancel 事件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年CKEditor插件开发 2022 CKEditor 插件 开发
限制150内