第一部分 开发前期准备
1、UEditor从1.4.1开始,添加对于二次开发的扩展支持。 Jeewx扩展二次开发采用1.4.3.1 Jsp 版本
2、上传图片设置 简述: UE做的不够灵活,不如老版本
[1] 配置文件:ueditor/jsp/config.json 说明: 所有项目配置访问前缀
[2] 引入UE依赖的JAR包 特殊说明:UE自带的ueditor-1.1.2.jar有问题,经过修改源码好用。 第二部分 扩展增加按钮DEMO
[1] customizeToolbarUIDemo.html页面 - <!DOCTYPE HTML>
- <html>
- <head>
- <title>完整demo</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
- <!--UEditor-->
- <script type="text/javascript" charset="utf-8" src="../ueditor.config.js"></script>
- <script type="text/javascript" charset="utf-8" src="../ueditor.all.min.js"> </script>
- <script type="text/javascript" charset="utf-8" src="../lang/zh-cn/zh-cn.js"></script>
- <!--添加按钮-->
- <script type="text/javascript" charset="utf-8" src="addCustomizeButton.js"></script>
- <style type="text/css">
- .clear {
- clear: both;
- }
- div{
- width:100%;
- }
- </style>
- </head>
- <body>
- <div>
- <h1>二次开发demo</h1>
- <script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>
- </div>
- </body>
- <script type="text/javascript">
- //实例化编辑器
- UE.getEditor('editor');
- </script>
- </html>
复制代码 [2] addCustomizeButton.js页面
- UE.registerUI('微信模板', function(editor, uiName) {
- //注册按钮执行时的command命令,使用命令默认就会带有回退操作
- editor.registerCommand(uiName, {
- execCommand: function() {
- alert('execCommand:' + uiName)
- }
- });
- //创建一个button
- var btn = new UE.ui.Button({
- //按钮的名字
- name: uiName,
- //提示
- title: uiName,
- //添加额外样式,指定icon图标,这里默认使用一个重复的icon
- cssRules: 'background-position: -500px 0;',
- //点击时执行的命令
- onclick: function() {
- //这里可以不用执行命令,做你自己的操作也可
- editor.execCommand(uiName);
- }
- });
- //当点到编辑内容上时,按钮要做的状态反射
- editor.addListener('selectionchange', function() {
- var state = editor.queryCommandState(uiName);
- if (state == -1) {
- btn.setDisabled(true);
- btn.setChecked(false);
- } else {
- btn.setDisabled(false);
- btn.setChecked(state);
- }
- });
- //因为你是添加button,所以需要返回这个button
- return btn;
- });
复制代码 第三部分 微信编辑扩展我的素材插件
[1]修改JSP页面,引入插件JS
weixin/guanjia/newstemplate/weixinArticle-update.jsp
[2]插件JS源码
- UE.plugins['weixin_template'] = function () {
- var me = this,thePlugins = 'weixin_template';
- me.commands[thePlugins] = {
- execCommand:function (cmd,uiName) {
- var pos='WXNRQ';
- if(uiName=='内容区'){
- pos ='WXNRQ';//此处编码要对应weixin数据字典项
- }if(uiName=='关注引导'){
- pos ='WXGZYD';
- }else if(uiName=='标题'){
- pos ='WXBT';
- }else if(uiName=='原文引导'){
- pos ='WXYWYD';
- }else if(uiName=='分隔线'){
- pos ='WXFGX';
- }else if(uiName=='互推账号'){
- pos ='WXHTZH';
- }else if(uiName=='我的样式'){
- pos ='WXWDYS';
- }else if(uiName=='其他'){
- pos ='WXQT';
- }
- var dialog = new UE.ui.Dialog({
- iframeUrl:this.options.UEDITOR_HOME_URL + '/demo/weixin.html?type='+pos,
- name:thePlugins,
- editor:this,
- title: '微信图文模板',
- cssRules:"width:740px;height:430px;",
- buttons:[
- {
- className:'edui-okbutton',
- label:'确定',
- onclick:function () {
- dialog.close(true);
- }
- }]
- });
- dialog.render();
- dialog.open();
- }
- };
- };
-
- function weixinButton(editor,uiName){
- //注册按钮执行时的command命令,使用命令默认就会带有回退操作
- editor.registerCommand(uiName,{
- execCommand:function(){
- try {
- editor.execCommand('weixin_template',uiName);
- } catch ( e ) {
- alert('打开模板异常'+e);
- }
- }
- });
- //创建一个button
- var btn = new UE.ui.Button({
- //按钮的名字
- name:uiName,
- //提示
- title:uiName,
- //需要添加的额外样式,指定icon图标,这里默认使用一个重复的icon
- cssRules :'background-position:-902px -45px;width: 63px!important;',
- //点击时执行的命令
- onclick:function () {
- //这里可以不用执行命令,做你自己的操作也可
- editor.execCommand(uiName);
- }
- });
- //因为你是添加button,所以需要返回这个button
- return btn;
- }
- UE.registerUI('微信图文模板',weixinButton);
复制代码 |