`
阅读更多

        项目中用到了百度的富文本编辑器,在这里简单介绍一下ueditor使用,以及表情本地化、表情修改。

uditor 官网http://ueditor.baidu.com ,有开发版和mini ,我们可以根据自己的需要下载不同的包。再开发版的tab页的左下方有表情库的下载地址,如果想本地化表情,请下载表情库。

        ueditor 解压后,直接放到工程webapp下就可以了,然后在应用的页面引入对应的js和css 如下:

 

<link href="/umeditor/themes/default/css/umeditor.css" type="text/css" rel="stylesheet">
    <script type="text/javascript" src="/umeditor/third-party/jquery.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/umeditor/umeditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="/umeditor/umeditor.min.js"></script>
    <script type="text/javascript" src="/umeditor/lang/zh-cn/zh-cn.js"></script>

   在html body中设置uditor 绑定的div

 

   

<div id="myEditor" style="width:909px;height:240px;">

</div>

   js中初始化uditor 

 

   

<%--加载ueditor--%>
var um = UM.getEditor('myEditor');

 

<%--初始化uditor内容-------%>
um.ready(function(){setContent(content);});

   ueditor  getConent 和getContentText 有些区别的,注意使用,其实想获取ueditor 有格式的全部内容,可以直接获取 myEditor  div 的 html

  

var content = $("#myEditor").html();

  

  ueditor 图片上传,只需修改umeditor.config.js 需要修改window.UMEDITOR_CONFIG.imageUrl 为工程内部上传图片地址,添加上传接口就ok了

 

@RequestMapping(value="uploadImage", method=RequestMethod.POST, produces="text/html;charset=UTF-8")
    @ResponseBody
    @LoginRequired
public void uploadImage(@RequestParam("upfile") MultipartFile upfile,HttpServletRequest request, HttpServletResponse response) {
    //*****省略上传代码*********//
       
     String result = "{\"name\":\""+ imageNameNew +"\", \"originalName\": \""+ imageName +"\", \"size\": "+ 500 +", \"state\": \""+ "SUCCESS" +"\", \"type\": \""+ imageInfo[1] +"\", \"url\": \""+ userImageUrl +"\"}";

     result = result.replaceAll( "\\\\", "\\\\" );
     

}

  上传时注意返回的内容格式。

  

  表情本地化,需要我们把下载的表情ueditor-emotion images 中的内容复制到工程umeditor》dialogs》emotion》images 下,然后修改umeditor.config.js 中 UMEDITOR_CONFIG  emotionLocalization 设置为true。这样就可以实现表情本地化了。

  

  下面给出添加表情的实现方法。在umeditor>images>emotion.js 中定义了表情面板展示的内容,emotion.css 中定义了每种表情的css。所以我们修改表情只需在emotion.js 和emotion.css 中做处理就ok了.

  

 UM.registerWidget('emotion',{
        tpl: "<link type=\"text/css\" rel=\"stylesheet\" href=\"<%=emotion_url%>emotion.css\">" +
            "<div class=\"edui-emotion-tab-Jpanel edui-emotion-wrapper\">" +
            "<ul class=\"edui-emotion-Jtabnav edui-tab-nav\">" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab7\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_hq%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab0\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_choice%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab1\" class=\"edui-tab-text\"><%=lang_input_Tuzki%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab2\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_lvdouwa%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab3\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_BOBO%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab4\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_babyCat%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab5\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_bubble%></a></li>" +
            "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab6\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_youa%></a></li>" +
            "<li class=\"edui-emotion-tabs\"></li>" +
            "</ul>" +
            "<div class=\"edui-tab-content edui-emotion-JtabBodys\">" +
            "<div class=\"edui-emotion-Jtab0 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab1 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab2 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab3 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab4 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab5 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab6 edui-tab-pane\"></div>" +
            "<div class=\"edui-emotion-Jtab7 edui-tab-pane\"></div>" +
            "</div>" +
            "<div class=\"edui-emotion-JtabIconReview edui-emotion-preview-box\">" +
            "<img src=\"<%=cover_img%>\" class=\'edui-emotion-JfaceReview edui-emotion-preview-img\'/>" +
            "</div>",
 

 

  以上定义了表情面板的tab位置,以及表情列表容器div。如果想调整tab中表情的显示顺序,只需调整class 为edui-emotion-Jtabnav edui-tab-nav 的ul中li的位置。

  

sourceData: {
            emotion: {
                tabNum:8, //切换面板数量
                SmilmgName:{ 'edui-emotion-Jtab0':['j_00', 84], 'edui-emotion-Jtab1':['t_00', 40], 'edui-emotion-Jtab2':['w_00', 52], 'edui-emotion-Jtab3':['B_00', 63], 'edui-emotion-Jtab4':['C_00', 20], 'edui-emotion-Jtab5':['i_f', 50], 'edui-emotion-Jtab6':['y_00', 40] , 'edui-emotion-Jtab7':['h_q', 6] }, //图片前缀名
                imageFolders:{ 'edui-emotion-Jtab0':'jx2/', 'edui-emotion-Jtab1':'tsj/', 'edui-emotion-Jtab2':'ldw/', 'edui-emotion-Jtab3':'bobo/', 'edui-emotion-Jtab4':'babycat/', 'edui-emotion-Jtab5':'face/', 'edui-emotion-Jtab6':'youa/', 'edui-emotion-Jtab7':'hq/'}, //图片对应文件夹路径
                imageCss:{'edui-emotion-Jtab0':'jd', 'edui-emotion-Jtab1':'tsj', 'edui-emotion-Jtab2':'ldw', 'edui-emotion-Jtab3':'bb', 'edui-emotion-Jtab4':'cat', 'edui-emotion-Jtab5':'pp', 'edui-emotion-Jtab6':'youa', 'edui-emotion-Jtab7':'hq'}, //图片css类名
                imageCssOffset:{'edui-emotion-Jtab0':35, 'edui-emotion-Jtab1':35, 'edui-emotion-Jtab2':35, 'edui-emotion-Jtab3':35, 'edui-emotion-Jtab4':35, 'edui-emotion-Jtab5':25, 'edui-emotion-Jtab6':35, 'edui-emotion-Jtab7':35}, //图片偏移
                SmileyInfor:{
                    'edui-emotion-Jtab0':['Kiss', 'Love', 'Yeah', '啊!', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '打酱油', '俯卧撑', '气愤', '?', '吻', '怒', '胜利', 'HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '微笑', '亲吻', '调皮', '惊恐', '耍酷', '发火', '害羞', '汗水', '大哭', '', '加油', '困', '你NB', '晕倒', '开心', '偷笑', '大哭', '滴汗', '叹气', '超赞', '??', '飞吻', '天使', '撒花', '生气', '被砸', '吓傻', '随意吐'],
                    'edui-emotion-Jtab1':['Kiss', 'Love', 'Yeah', '啊!', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '摊手', '睡觉', '瘫坐', '无聊', '星星闪', '旋转', '也不行', '郁闷', '正Music', '抓墙', '撞墙至死', '歪头', '戳眼', '飘过', '互相拍砖', '砍死你', '扔桌子', '少林寺', '什么?', '转头', '我爱牛奶', '我踢', '摇晃', '晕厥', '在笼子里', '震荡'],
                    'edui-emotion-Jtab2':['大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '我错了', 'money', '气愤', '挑逗', '吻', '怒', '胜利', '委屈', '受伤', '说啥呢?', '闭嘴', '不', '逗你玩儿', '飞吻', '眩晕', '魔法', '我来了', '睡了', '我打', '闭嘴', '打', '打晕了', '刷牙', '爆揍', 'zhadan', '倒立', '刮胡子', '邪恶的笑', '不要不要', '爱恋中', '放大仔细看', '偷窥', '超高兴', '晕', '松口气', '我跑', '享受', '修养', '哭', '汗', '啊~', '热烈欢迎', '打酱油', '俯卧撑', '?'],
                    'edui-emotion-Jtab3':['HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '泪眼', '流泪', '生气', '吐舌', '喜欢', '旋转', '再见', '抓狂', '汗', '鄙视', '拜', '吐血', '嘘', '打人', '蹦跳', '变脸', '扯肉', '吃To', '吃花', '吹泡泡糖', '大变身', '飞天舞', '回眸', '可怜', '猛抽', '泡泡', '苹果', '亲', '', '骚舞', '烧香', '睡', '套娃娃', '捅捅', '舞倒', '西红柿', '爱慕', '摇', '摇摆', '杂耍', '招财', '被殴', '被球闷', '大惊', '理想', '欧打', '呕吐', '碎', '吐痰'],
                    'edui-emotion-Jtab4':['发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '顶', '幸运', '爱心', '躲', '送花', '选择'],
                    'edui-emotion-Jtab5':['微笑', '亲吻', '调皮', '惊讶', '耍酷', '发火', '害羞', '汗水', '大哭', '得意', '鄙视', '困', '夸奖', '晕倒', '疑问', '媒婆', '狂吐', '青蛙', '发愁', '亲吻', '', '爱心', '心碎', '玫瑰', '礼物', '哭', '奸笑', '可爱', '得意', '呲牙', '暴汗', '楚楚可怜', '困', '哭', '生气', '惊讶', '口水', '彩虹', '夜空', '太阳', '钱钱', '灯泡', '咖啡', '蛋糕', '音乐', '爱', '胜利', '赞', '鄙视', 'OK'],
                    'edui-emotion-Jtab6':['男兜', '女兜', '开心', '乖乖', '偷笑', '大笑', '抽泣', '大哭', '无奈', '滴汗', '叹气', '狂晕', '委屈', '超赞', '??', '疑问', '飞吻', '天使', '撒花', '生气', '被砸', '口水', '泪奔', '吓傻', '吐舌头', '点头', '随意吐', '旋转', '困困', '鄙视', '狂顶', '篮球', '再见', '欢迎光临', '恭喜发财', '稍等', '我在线', '恕不议价', '库房有货', '货在路上'],
                    'edui-emotion-Jtab7':['亲亲', '哭哭', '开心', '接元宝', '数红包', '约约约']

                }
            }
        },
  以上内容定义了个个表情的列表内容css 和 表情显示名称

 

  

initImgName: function() {

            var emotion = this.sourceData.emotion;

            for ( var pro in emotion.SmilmgName ) {
                var tempName = emotion.SmilmgName[pro],tempBox = emotion.SmileyBox[pro],tempStr = "";
                if ( tempBox.length ) return;

                var defaultImgSuffix = ".gif";

                if ("edui-emotion-Jtab7" == pro)
                    defaultImgSuffix = ".png";

                for ( var i = 1; i <= tempName[1]; i++ ) {
                    tempStr = tempName[0];
                    if ( i < 10 ) tempStr = tempStr + '0';
                    tempStr = tempStr + i + defaultImgSuffix;
                    tempBox.push( tempStr );
                }
            }

        },
   从以上代码我们可以分析出,这段代码是用来加载表情的,imageFolders 的value 是dialogs>emotion>images 下一级的目录名称,图片地址拼接规则是SmilmgName 的key+  for(value)+.gif
  所以我们需要在imageFolders  SmilmgName imageCss imageCssOffset 定义我们自己的内容,SmileyInfor 指定显示名称 ,在dialogs>emotion>images 中导入按以上规则命名的表情图片。dialogs>emotion>images 下的图片是一个git拼图,这里直接导入我们的拼图就ok了,名称要喝emotion.css中的背景图名称相对应
  
.edui-popup-emotion .edui-emotion-hq img{
    background:transparent url(images/hface.gif?v=1.1) no-repeat scroll left top;
    cursor:pointer;width:35px;height:35px;display:block;
}
  
   以上是我使用ueditor的小小总结。
2
0
分享到:
评论
1 楼 乌发舞天 2017-03-31  
 

相关推荐

    百度文本编辑器实例UEditor实例

    **标题详解:**“百度文本编辑器实例UEditor实例” 百度UEditor是一款强大的富文本编辑器,由百度公司开发,广泛应用于网站内容编辑系统。它提供了丰富的文本格式化选项、图片上传、视频插入、表格编辑等功能,使得...

    ueditor实例

    【ueditor实例】是关于集成并使用开源富文本编辑器UEditor的一个具体实践,主要针对在Eclipse开发环境中如何配置UEditor以及解决与Struts框架集成时遇到的问题。UEditor是一款广泛使用的JavaScript富文本编辑器,它...

    基于Maven的SpringMVC整合UEditor实例,可单独配置上传路径

    基于Maven的SpringMVC整合UEditor实例,可单独配置图片上传路径,具体详情请参见博文:http://blog.csdn.net/l1028386804/article/details/52389722

    thinkphp3.2.3+ueditor实例

    《ThinkPHP3.2.3结合UEditor实现文章发布系统详解》 对于初学者来说,构建一个功能完备的文章发布系统是提升技术能力的重要步骤。在本文中,我们将深入探讨如何利用ThinkPHP...希望这个实例能对你的学习之路有所帮助。

    ueditor(单独使用上传图片)

    虽然编辑器实例被隐藏,我们仍可以使用ueditor提供的API手动触发图片上传,例如调用`UE.Editor.prototype.execCommand('insertimage', imgUrls)`,其中`imgUrls`是图片URL的数组。 6. **安全性与权限控制**: 在...

    原生js ---- ueditor富文本编辑器实例

    5. **数据交互**:通过`ueditor实例.getContent()`获取编辑器的当前内容,`ueditor实例.setContent('新的内容')`设置编辑器的内容。 6. **其他功能**:ueditor还支持图片上传、视频插入、表格操作、代码高亮等高级...

    ueditor1.4.3.jsp在Myeclipse下部署好的实例

    通过这些步骤,我们可以实现一个完整的ueditor实例,提供丰富的文本编辑、图片和附件上传功能,提升网站内容编辑的效率和用户体验。在实际应用中,可以根据项目需求进行个性化配置,以满足不同场景下的需求。

    ueditor-1.1.2_ueditor-1.1.2_ueditor_ueditor:jar:1.1.2_ueditor-1.

    4. **实例化编辑器**:在JavaScript中创建UEditor实例,指定编辑器容器元素。 5. **数据交互**:通过AJAX等方式,将编辑器内容保存到服务器,或从服务器加载内容。 总结 ueditor-1.1.2为Java开发者提供了强大且...

    angular-ueditor修改版

    例如,描述中提到的“修正了第二次创建ueditor失败的情况”,这是针对UEditor在Angular环境中可能出现的重复初始化问题进行了修复,确保在同一个应用中可以多次成功创建和使用UEditor实例。 在实际开发中,遇到这样...

    vue项目中使用ueditor的实例讲解

    vue项目中使用ueditor的实例讲解 在本篇文章中,我们将通过实例讲解来了解如何在Vue项目中使用ueditor。ueditor是一个功能强大且灵活的富文本编辑器,广泛应用于各种web应用程序中。在本篇文章中,我们将一步一步地...

    ueditor静态资源包

    在实际应用中,开发者需要将ueditor的静态资源包部署到服务器,并通过JavaScript代码初始化ueditor实例,配置编辑器的参数,如高度、宽度、语言、上传接口等。例如: ```javascript var editor = UE.getEditor('...

    vue-ueditor-wrap的ueditor

    如`this.$refs.ueditor.getContent()`用于获取编辑器中的内容,`this.$refs.ueditor.setContent('新内容')`用于设置编辑器内容,以及`this.$refs.ueditor.get_ue()`获取原始的UEditor实例等。 在实际开发中,你可能...

    UEditor富文本编辑器的静态资源部分

    - **组件封装**:创建一个Vue组件,将UEditor实例化过程封装起来,包括初始化编辑器、销毁编辑器的方法。 - **数据绑定**:利用Vue的v-model指令,实现编辑器内容与Vue数据的双向绑定。 - **事件处理**:注册监听...

    UEditor JSP版 demo

    4. **初始化编辑器**:在JSP页面中,通过JavaScript代码初始化UEditor实例。通常,这会涉及到一个div元素,UEditor会将这个元素转换为编辑器界面。例如: ```jsp var editor = UE.getEditor('editorId', { // ...

    UEditor富文本编辑器在项目中的引用+源码+操作

    接着,通过JavaScript初始化UEditor实例。在页面加载完成后,使用以下代码: ```javascript var editor = UE.getEditor('myEditor', { // 这里可以配置编辑器参数,如:工具栏、图片上传路径等 }); ``` 这样就...

    ueditor基本配置、图片上传配置、文件上传配置

    3. **创建编辑器实例**:在HTML中创建编辑器实例的容器,通常是一个`&lt;div&gt;`元素,然后通过JavaScript动态创建ueditor实例。使用`&lt;script&gt;`标签而非`&lt;textarea&gt;`,因为ueditor可以接管`&lt;div&gt;`,提供更丰富的功能。 4...

    ueditor 公式插件

    5. **兼容性**:kityformula-plugin与ueditor的其他功能无缝集成,可以在任何ueditor实例中正常使用。 ### 四、使用步骤 1. **安装插件**:下载kityformula-plugin压缩包,将其解压到ueditor的plugins目录下。 2....

Global site tag (gtag.js) - Google Analytics