本文实例讲述了CKEDITOR 4 扩展插件制作。分享给大家供大家参考,具体如下:
今天让我们来探索一下ckeditor的扩展功能,换句话说就是自定义按钮,以及点击按钮之后实现的功能。
要实现自定义按钮,我们要做几个事情:
- 1、准备一个图标,最好是16*16大小的png格式图片,你没有的话,姜哥帮你准备了一张。
- 2、在
plugins
目录下建立我们和自定义插件同名的目录,并且在里面建立一个叫plugin.js
的文件。 - 3、在我们自己的插件目录中,建立一个dialogs目录,并且在里面新建一个与我们插件同名的js文件,实现插件的功能。
动手!
1、建立相应的文件夹和文件,姜哥在ckeditor/plugins/下新建了一个myplug
目录,将来我的插件就叫myplug
2、编辑plugin.js
文件,填入以下内容,特别要注意里面的名字前后保持一致,后期运行有问题,多半是名字写错了:
(function(){ //Section 1 : 按下自定义按钮时执行的代码 var a= { exec:function(editor){ alert("This a custome button!"); } }, //Section 2 : 创建自定义按钮、绑定方法 b='myplug'; //注意myplug名字 CKEDITOR.plugins.add(b,{ init:function(editor){ CKEDITOR.dialog.add('myplugDialog', this.path + 'dialogs/myplug.js'); //注意myplug名字 editor.addCommand('myplug', new CKEDITOR.dialogCommand('myplugDialog')); //注意myplug名字 //注意myplug名字 和 图片路径 editor.ui.addButton('myplug',{ label:'打开我的插件', icon: this.path + 'myplug.png', command:b }); } }); })();
3、配置config.js中的toolbar,将自定义插件显示出来:
CKEDITOR.editorConfig = function( config ) { config.extraPlugins="myplug"; //增加了我们的自定义插件 config.toolbar = 'Full'; config.toolbar_Full = [ { name: 'custome_plugin', items : [ 'myplug'] }, //将自定义插件加入toolbar { name: 'insert', items : [ 'upload','album','-','Table' ] }, { name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] }, { name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript' ] }, { name: 'paragraph', items : [ 'NumberedList','BulletedList','-','-','Blockquote', '-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock' ] }, { name: 'colors', items : [ 'TextColor','BGColor' ] }, { name: 'document', items : [ 'Source' ] }, ]; };
在这里我们只加了两行,一行是config.extraPlugins="myplug";
这个向ckeditor注册了我们的自定义插件,告诉ckeditor还有我们的这个myplug
这么个东西;另一行是{ name: 'custome_plugin', items : [ 'myplug'] }
,用来配置toolbar,让ckeditor将我们的按钮显示出来,注意后面的逗号,不要漏了噢。
保存之后,看一下运行效果,图标出来了,可是点击以后一闪而过,那是因为我们还没有开发对应的dialog
代码:
注意:如果大家这一步失败了,可以尝试从两个方面排查:
①、前面我一再强调的,名字有没有弄错;
②、也许是文件编码的问题,尝试把所有的中文都删掉,换成英文试试。
4、开发dialogs/myplug.js
,实现业务功能
在myplug/dialogs/新建一个叫myplug.js
的文件,这个其实和前面一步中,plugin.js
文件中的这一行是对应的:
CKEDITOR.dialog.add('myplugDialog', this.path + 'dialogs/myplug.js'); //注意myplug名字
在那个文件中,其实指定了我们dialog文件的目录和文件名,理论上是可以随意的,但是为了容易管理,墙裂建议大家搞成一样的,不要给自己制造麻烦~来看一下,我们要在myplug.js
里写什么:
(function () { function myplugDialog(editor) { return { title: 'Who does you want to say hello"" alt="这里写图片描述" src="/UploadFiles/2021-04-02/201906181058469.png">用我标红的两个选项试试看,一般都是可以的,重新保存之后,再次运行:
点击我们的插件后,出来一个对话框,填入我的名字,姜哥,再按确定。
我们填入的内容就被插入到当前光标处了!
好了,今天我们学习了ckeditor的自定义插件,以及插件中内容的交互。内容还是比较多的,大家也可能会碰到各种问题,姜哥再这里再唠叨两句,问题一般都是两种原因引起的:
①、名称前后不一致;
②、中文编码格式引起的乱码。完整实例代码点击此处本站下载。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript错误与调试技巧总结》、《JavaScript操作XML文件技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]