- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Emditor 宏之菜单应用
Emditor 宏之菜单应用
在常用的编辑器里面,我最常用的就是Emditor,它吸引我的就是它的宏,而且支持两种vbscript和javascript,我比较喜欢javascript的方式来使用它的宏
?????? 由于在使用Emditor的过程中,时常为了提高工作效率,积累了不少Emditor的宏,放入工具栏太多宏,有时候都快找不出来了,经过一番研究,决定在它的宏菜单基础上面,按文件-功能类别,一个jsee文件对应一个工具集,工具集下面和有多个子菜单,这样不至于jsee太多而导致工具栏拥挤
如果你想把本文的内容用到Emditor,请先了解如下知识
javascript基础知识
Emditor 宏api,
Emditor编辑器
?1.以前
一个jsee文件,仅仅包含一个宏,当点击工具栏上对应的jsee名称,则执行jsee中的宏
2.现在
一个jsee文件包含多个宏,这些宏通过菜单的形式提供给使用者使用
3.为了实现上述目标,献给jsee文件定一个规范
1)菜单管理器
2)菜单
3)工具
一个菜单对象对应一个工具
一个菜单有多个菜单项
每个菜单项对应工具中的一个方法
?一个jsee文件仅包含一个菜单管理,包含多个菜单,但是都是注册到菜单管理器统一管理
菜单管理器(不显示)
?? 菜单(显示)
????????????? 菜单项 (显示)
????????????? 菜单项 (显示)
????????????? 菜单项 (显示)
?? 菜单(显示)
????????????? 菜单项 (显示)
????????????? 菜单项 (显示)
?? 菜单(显示)
最终效果图(点击工具栏上的宏后)
??
Emditor中PopupMenu Object API
CreatePopupMenu : 创建弹出菜单,全局函数
AddPopup:添加子菜单
Add:添加菜单项
Track:显示菜单
?
第一步,实现如下几项
1)菜单基类
在具体的jsee里面,菜单只需要继承这个基类,加入菜单项,挂接点击菜单后的执行函数就行了
?2)菜单管理器(基类)
在具体的jsee里面,可以继承这个管理器,注册多个菜单,并在用户点击宏时候,显示
?下面我们开始实现着两个基类,用到了javascript的一些继承知识
---------Object
1 Object.extend = function(destination, source) {
2 for (property in source) {
3 destination[property] = source[property];
4 }
5 return destination;
6 }
7
8 Ototype.extend = function(object) {
9 return Object.extend.apply(this, [this, object]);
10 }
?
--------------- GObject
1 ////////////////////////////////////////////////////////////////
2 //这个类就是Menu的基类,其实也是MenuManager的基类
3 //后面可以看到为啥都用这个当基类
4 ////////////////////////////////////////////////////////////////
5 function GObject()
6 {
7 }
8
9 GOtotype={
10 ShowAsSub:true,
11 Number:0,
12 Menu:null,
13 Name:GObject,
14 DoCommand:function(n) { },
15 AddM:function() { },
16 AddMenu:function(mmMenu) {
17 if(this.ShowAsSub)
18 this.Menu=CreatePopupMenu();
19 else
20 this.Menu=mmMenu;
21 this.AddM();
22 if(this.ShowAsSub){
23 mmMenu.AddPopup(this.Nam
原创力文档


文档评论(0)