博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CkEditor 插件开发
阅读量:7071 次
发布时间:2019-06-28

本文共 3581 字,大约阅读时间需要 11 分钟。

CKEditor的插件开发其实很简单只需要两步.1.通过CKEditor.plugins.add()方法编写插件的逻辑主体, 2.告诉CKEditor我们有一个自定义插件需要添加进来.

//创建插件逻辑主体,并为插件起个响亮的名字CKEDITOR.plugins.add('myplugin', {    init: function () {        alert('第一个简单的插件!');    }});//告诉CKEDITOR我们有定义了一个插件.CKEDITOR.replace('editor1', {    extraPlugins: 'myplugin'});

这个插件会在页面加载完成后执行, 当然我们一般会为插件创建一个按钮, 当有需要的时候我们去执行插件,下面就给插件添加一个按钮,同样还是在CKEditor.plugins.add()完成这些事情,那么按钮和我们的插件是如何建立联系的呢,CKEditor是通过一个叫'命令'的机制来完成的.

CKEDITOR.plugins.add('myplugin', {    init: function (editor) {        //创建一个按钮, editor代表ckeditor编辑框实例        editor.ui.addButton('mybutton', {            lable: 'FButton',            title: 'My Button',            command: 'mycommand'  //通过命令的方式连接        });        //插件的逻辑主体写在命令里面, 并给他起个响亮的名字        editor.addCommand('mycommand', {            exec: function () {                alert('第一个简单的插件');            }        });    }})

光弹出一个alert显然不是太酷, 我们需要自定义一个弹出的对话框.

CKEDITOR.plugins.add('myplugin', {    init: function (editor) {        //这里是对话框的主体. 定义一个名为'mydialog'的对话框        CKEDITOR.dialog.add('mydialog', function (editor) {            return {                title: '第一个对话框',                minWidth: 390,                minHeight: 130,                contents: [                    {                        id: 'tab1',                        label: 'Label',                        title: 'Title',                        expand: true,                        padding: 0,                        elements: [                            {                                type: 'html',                                html: '

第一个简单的插件!

' } ] } ] }; }); //插件的逻辑主体再次被封装, new CKEDITOR.dialogCommand('mydialog')就是用来弹出名为'mydialog'的对话框. editor.addCommand('mycommand', new CKEDITOR.dialogCommand('mydialog')); editor.ui.addButton('mybutton', { lable: 'FButton', title: 'My Button', command: 'mycommand' //通过命令的方式连接 }); }})

当然我们还可以把这个弹出对话框通过右键上下文菜单打开, 原理也是一样, 通过'命令'的机制绑定.

CKEDITOR.plugins.add('myplugin', {    init: function (editor) {        CKEDITOR.dialog.add('mydialog', function (editor) {            return {                title: '第一个对话框',                minWidth: 390,                minHeight: 130,                contents: [                    {                        id: 'tab1',                        label: 'Label',                        title: 'Title',                        expand: true,                        padding: 0,                        elements: [                            {                                type: 'html',                                html: '

第一个简单的插件!

' } ] } ] }; }); editor.addCommand('mycommand', new CKEDITOR.dialogCommand('mydialog')); editor.ui.addButton('mybutton', { lable: 'FButton', title: 'My Button', command: 'mycommand' //通过命令的方式连接 }); //添加上下文菜单项, if (editor.contextMenu) { editor.addMenuGroup('mymenugroup', 10); editor.addMenuItem('mymenuitem', { label: '打开对话框', command: 'mycommand', //通过命令的方式绑定 group: 'mymenugroup' }); } //为上下文菜单添加监听器, 如果不添加这句, 我们的创建的上下文菜单将无法显示在右键菜单里面. 原理不详,望指点 editor.contextMenu.addListener(function (element) { return { 'mymenuitem': CKEDITOR.TRISTATE_OFF }; }); }})

关于CKEditor的插件开发里面还有好多东西需要研究, 等搞明白了在和大家分享.

 

转载地址:http://blzml.baihongyu.com/

你可能感兴趣的文章
【英文演讲】What are your strengths
查看>>
logstash推送mysql慢查询日志
查看>>
面试如何让自己赢在细节
查看>>
运维自动化之使用Cobbler自动化安装系统与FAQ
查看>>
实战1:创建Windows Server 2008域
查看>>
Windows 8实例教程系列 - 数据绑定高级实例
查看>>
批量查看mysql多从状态和修改多从主库指向
查看>>
Gartner:2016年十大信息安全技术(含解读)
查看>>
OSSIM系统用户审计
查看>>
如何使用Exchange邮件组仲裁
查看>>
使用Formik轻松开发更高质量的React表单(二)使用指南
查看>>
python写的部署windows下zabbix客户端脚本
查看>>
腾讯 vs 百度:两家互联网巨头对比
查看>>
数据中心的云计算之旅-【沈阳软件】2011年
查看>>
IOS7为什么遭吐槽?
查看>>
Android和.NET通用的AES算法
查看>>
Java那些事之磁盘操作
查看>>
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)...
查看>>
【学习】HTML5深入学习
查看>>
windows计数器和瓶颈
查看>>