第一部分 开发前期准备 


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('微信图文模

实战-Ueditor扩展二次开发相关推荐

  1. 基于百度编辑器Ueditor的二次开发

    基于百度编辑器Ueditor的二次开发 官网下载 基本配置 简化后端配置,不请求后端配置项 后端接口规范 修改图片上传 说明及修改 新增按钮及弹窗(自定义附件上传) 按钮文案修改 在业务开发的时候,曾 ...

  2. hive server2源码地址在哪_实战搭建Thinkphp二次开发威客RW平台源码粉丝关注投票发布系统...

    实战搭建Thinkphp二次开发威客RW平台源码粉丝关注投票发布系统 运行环境:php5.6+需要开启伪静态 安装步骤: 上传解压,运行目录指向 public 修改/app/database.php ...

  3. C#实战之CAD二次开发001:CAD和C#的环境配置

    前言 本博文主要介绍利用C#对CAD进行二次开发,结合了ObjectARX功能强大的特点和VBA易用的特点,通过实战项目对C#开发CAD进行一个简要的介绍. 1.CAD的安裝 首先我们需要安装CAD, ...

  4. C#实战之CAD二次开发006:与python进行Socket传输文件

    前言 前面介绍了与CAD相关的一些功能,本期介绍一下C#和python如何通过socket通信来进行文件的传输,建议不了解Socket的同学先去了解一下socket的通讯原理,这样看起来不会云里雾里的 ...

  5. C#实战之CAD二次开发003:插入文字和插入图块

    前言 上期我们介绍了如何利用C#在CAD中绘制直线和圆,这期我们介绍一下CAD中两个比较重要的功能,插入文字和插入图块,在CAD中插入文字主要是单行文字和多行文字,插入块主要有内部图块和外部图块.本文 ...

  6. C#实战之CAD二次开发004:插入尺寸标注

    前言 上期我们介绍了CAD中插入文字和插入图块两个功能,这期我们继续介绍一个比较常用的功能--标注尺寸,标注尺寸是我们在绘图的时候经常用到这个功能. 插入标注 CAD中的标注形式有很多种,例如水平标注 ...

  7. UEditor 如何进行二次开发

    背景 UEditor虽然功能众多,但对于广大开发者来说,还是有很多定制化的功能需求,如果都靠UEditor团队自己开发那是不现实的,这时就需要广大开发者在UEditor的基础上自己开发定制功能.但在之 ...

  8. 关于K3wise系列的二次开发

    关于K3wise系列的二次开发 今天收到反馈说PAD端做的外购入库单据没有[含税金额]数据 经分析不管在PAD端还是PC端添加库存单据都会执行 p_UpdateBillRelateData 存储过程 ...

  9. Spring Boot + vue-element 开发个人博客项目实战教程(二十五、项目完善及扩展(前端部分))

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...

最新文章

  1. 2019全球AI人才分布图:美国占44%,中国人才净流入
  2. junit5_使用junit做其他事情
  3. 【Henu ACM Round#17 D】Hexagons!
  4. 前端html5的框架有哪些,10大html5前端框架
  5. 每个开发人员都应该知道的 15 个 IntelliJ IDEA 快捷方式
  6. 使用ueditor实现多图片上传案例——DaoImpl层(BaseDaoUtilImpl)
  7. SQLAllocStmt与SQLFreeStmt
  8. JDK8和JDK1.8有何区别
  9. this compilation unit is not on the build of a java project
  10. lineNumber: 8; columnNumber: 128; cvc-elt.1: 找不到元素 'beans' 的声明
  11. java程序员期望薪资_11月程序员平均薪资达14327元,薪资最高的居然不是JAVA?
  12. java byte[]如何移动位置_《北京尚学堂学习》——java基础
  13. java eclipse参考文献_2019-2020年java毕设论文参考文献.doc
  14. MySQL命令执行脚本文件
  15. IReport+JasperReport系列的坑(二)CloumnFooter与Detail之间有缝隙
  16. md5验证文件上传,确保信息传输完整一致
  17. 超链接 与众不同的鼠标滑过超链接下划线动画效果
  18. aardio - 【库】libxl库,一个dll操作excel
  19. php fpm配置和php.ini,php安装完后配置php.ini和php-fpm.conf
  20. Java oss 上传图片视频

热门文章

  1. 程序是怎样跑起来的:第一章-对程序员来说CPU是什么
  2. 企业安全建设之自动化代码扫描(代码审计)
  3. unix-privesc-check提权漏洞快速检测工具
  4. jsp中如何将Java对象转成js对象?
  5. bootstrap-multiselect 手动触发onChange事件
  6. [daily] fedora用过光盘做dnf repo
  7. 认清业务、技术与软件系统的价值链
  8. 嵌入式软件设计第12次实验报告
  9. thymeleaf的常见用法
  10. Entity Framework加载相关实体——Explicit Loading