开场扯淡
上次聊了聊ckeditor编辑器实例化及自定义图片上传功能的事儿,今天来说一些杂七杂八的优化及自定义视频插入的小功能。
右键菜单事件
其实ckeditor第四版开始有了右键菜单事件,即在编辑器内右键图片,文本等,会弹出简单的编辑菜单,如复制,粘贴,剪切,编辑图片等等。初衷其实是好的,可是我就是喜欢简洁一些,傻瓜式操作。不过图片的右键编辑功能其实可以保留,方便直接右键编辑现有图片。记得上一篇中的注册右键事件吗?1
2
3
4
5
6
7
8
9// 注册右键菜单
if ( editor.contextMenu ) {
editor.addMenuGroup( 'oss');
editor.addMenuItem( 'image', {
label: '修改图片', //右键菜单名称
command: 'ossupload', //执行的命令
group: 'oss'
} );
}
右键之后直接打开弹窗进行编辑即可。为了隐藏或者说取消ckeditor编辑器的默认右键事件,我们在config.js内这么写了一句:1
CKEDITOR.config.menu_groups = ''; //编辑器内的右键菜单设为空。搜索关键字menuitem,查看源码
就是直接将右键菜单事件清空,使用我们自定义的右键菜单事件。
参看源码:menuitem
自定义iframe插入视频
插入第三方的视频链接也是编辑器常用的一个功能。可惜一个挺简单的功能又让官方搞的很复杂,让人看着就不想使用。同样是发挥自定义精神,我自己做了一个iframe的插入功能。
- 组件的文件结构同上一篇的oss上传,简单起见就不传图了,代码模拟下
1 | myiframe |
先看最终效果:
- 直接插入视频网站的链接,可以自定义视频宽高百分比,同样基于rem的等比例。先定义plugin.js
1 | ( function() { |
- 接着是弹窗dialogs/myiframe.js
1 | CKEDITOR.dialog.add( 'iframeup', function( editor ) { |
- iframe默认是有右键菜单的,这里就暂时不注册右键事件了,以后可以优化下,如视频预览图,右键之类的功能。
另一个坑
另外的一个坑是同事玩我编辑器的时候发现的:双击图片会弹出ckeditor默认的图片弹窗。而这一直是我竭力规避的情况。查了下文档,关键字doubleclick,发现这块还是写的很模糊的,搞了一圈也没发现配置选项在哪,最后没办法,只能搜源码暴力解决了。
方法:在ckeditor.js内搜索’doubleclick’,可以看到它注册了很多双击事件,找到控制image的地方,直接将命令为image的代码删除,同时顺手将默认的iframe双击事件也删除,保存即可。这样双击事件就不会再触发了。方法虽然很粗暴,但是很管用。
OK,基本上到现在,我们的编辑器’看起来’还是很舒服的,基本功能都齐全,又是所见即所得的,我暂时很满意,不过不排除以后有什么新的功能需求,到时候再进行开发即可。用了两篇blog来简单说了下ckeditor的使用方法和自己的小优化,等闲下来会将自己的两个组件传到github上,方便以后查询。
下一篇估计会探讨一下plupload的用法,这个上传插件用起来还是很爽的,功能也很强大。就这样…