CkEditor 插件开发
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: '<p>第一个简单的插件!</p>'
}
]
}
]
};
});
//插件的逻辑主体再次被封装, 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: '<p>第一个简单的插件!</p>'
}
]
}
]
};
});
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的插件开发里面还有好多东西需要研究, 等搞明白了在和大家分享.
CkEditor 插件开发的更多相关文章
- CKEditor插件开发
以前做过一个教育项目,是有关在线考试的.其中对编辑器CKEditor做了扩充,增加了插入客观题.主观题.选择题和判断题的功能.这里记述下CKEditor插件开发的过程. CKEditor以前叫FCKE ...
- CKeditor插件开发流程(二)SyntaxHighlighter
CKEditor整合SyntaxHighlighter实现代码高亮显示 1,版本说明 CKEditor:ckeditor_4.0.1_standard.zipSyntaxHighlighter:syn ...
- CKeditor插件开发流程(一)
1.放在多文件中 第一步:config.js中 config.extraPlugins = '插件名称';//注册插件,extraPlugins只允许出现一次,你如果之前有新增别的插件,那么用逗号分隔 ...
- CKEditor 自定义按钮插入服务端图片
CKEditor 富文本编辑器很好用,功能很强大,在加上支持服务端图片上传的CKFinder更是方便, 最近在使用CKFinder的时候发现存在很多问题,比如上传图片的时候,图片不能按时间降序排列,另 ...
- 七牛云:ckeditor JS SDK 结合 C#实现多图片上传。
成功了,搞了2天.分享一下经验. 首先是把官方的那个例子下载下来,然后照如下的方式修改. 其中tempValue是一个全局变量. function savetoqiniu() { var upload ...
- JavaScript学习笔记(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- jira的插件开发流程实践
怎么开头呢,由于自己比较懒,博客一直不怎么弄,以后克己一点,多传点自己遇到的问题和经历上来,供自己以后记忆,也供需要的小伙伴少走点弯路吧 最近公司项目需要竞标一个运维项目,甲方给予了既定的几种比较常用 ...
- Vue插件开发入门
相对组件来说,Vue 的插件开发受到的关注要少一点.但是插件的功能是十分强大的,能够完成许多 Vue 框架本身不具备的功能. 大家一般习惯直接调用现成的插件,比如官方推荐的 vue-router.vu ...
- 【原创】记一次Project插件开发
一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...
随机推荐
- 国际制造执行系统(MES)应用与发展
某些专家认为,当今制造业的生存三要素是信息技术(IT).供应链管理(SCM)和成批制造技术.使用信息技术就是由依赖人工的作业方式转变为作业的快速化.高效化,大量减少人工介入,降低生产经营成本:供应链管 ...
- 第三章 管理程序流(In .net4.5) 之 实现程序流
1. 概述 本章内容包括 布尔表达式.流控制方式.集合遍历 以及 流跳转. 2. 主要内容 *由于该章内容比较基础,日常用的也很多,故对一些常用的基础内容不再赘述. 2.1 使用布尔表达式 熟悉下列比 ...
- web开发中,前端javascript代码的组织结构
网页包含三个层次: 结构(HTML) 表现(CSS) 行为(javascript) web标准中,三者要分离,网页源代码由三部分组成:.html文件..css文件和.js文件.就是说html文件中不应 ...
- 宝马测试(C++实现)
测试目的:对编辑器放大,缩小性能测试. 测试资源:一匹宝马. 测试结果:良好. 实现方法:通过调用本地保存的宝马文件,逐字逐行的显示在编辑器中,并放大,缩小.对不同的符号进 ...
- Android---WebView显示Html乱码问题
webView.loadData(result,"text/html","UTF-8"); 反正是用上面的方法无法解决乱码的问题. 使用下面的方法就能完美解决了 ...
- hdu 1509 Windows Message Queue
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1509 Windows Message Queue Description Message queue ...
- bzoj 1269 [AHOI2006]文本编辑器editor
原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1269 伸展树的运用,如下: #include<cstdio> #include ...
- umask设置导致的weblogic中的应用上传的文件没有权限打开
去年,在公司的某一weblogic上部署的web应用上传文件后却没有读的权限.因为weblogic在Linux上部署,上传文件是mount到了一台安装了NFS的Windows Server上. 当时本 ...
- netlink+netfilter
http://blog.chinaunix.net/uid-21768364-id-3618377.html
- MEF(Managed Extensibility Framework) 微软平台插件化开发
体验Managed Extensibility Framework精妙的设计 MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要 ...