emoji web端处理
1、发送给服务器端的信息,因为图片是选择的在web端只提供了50个表情选择,所以将 #哈哈# ,凡是# #包裹的内容转化成对应的unicode编码, 比如U+1F603。每一个对应起来,这一点比较麻烦。
2、服务器发过来的信息 将里面U+1f603 这种 u+开头的转化成<span class="emoji emoji1f603 "></span>,再根据emoji.js emoji.css emoji.png这三个文件 显示出图片。
3、代码链接:链接:https://pan.baidu.com/s/1nsuzW7o7_CaaHLWXgdsP2Q 密码:br1u;运行里面的test.html可看效果。
html和js代码:
<!DOCTYPE html>
<html lang="en-us"> <head>
<meta charset="UTF-8">
<title>jQuery-emoji by eshengsky</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="js/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="emoji.css" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="css/jquery.emoji.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.mCustomScrollbar.min.css" />
<script src="js/jquery.mCustomScrollbar.min.js"></script>
<script src="js/jquery.mousewheel-3.0.6.min.js"></script>
<script src="js/highlight.pack.js"></script>
<script src="js/jquery.emoji.min.js"></script>
</head> <body> <span class="emoji emoji1f51d "></span>
<section class="main-content container"> <div class="row m-t-20">
<div class="col-md-6">
<textarea id="editor" contenteditable="true" value="U+2600"></textarea>
<button id="btn" class="btn btn-sm btn-default">加载图片</button>
<button class="fasong">发送</button>
</div>
</div>
<div class="getinfo" id="getinfo" style="border: 1px solid black;min-height: 200px;">
<div class="add"></div>
</div>
</section> <script>
hljs.initHighlightingOnLoad();
$("#editor").emoji({
button: "#btn",
showTab: false,
animation: 'slide',
icons: [{
path: "img/qq/",
file: ".png",
maxNum: 50,
excludeNums: [],
placeholder: "#{alias}#",
alias: {
1: "微笑",
2: "大笑",
3: "笑哭",
4: "发呆",
5: "睡觉",
6: "尴尬",
7: "抓狂",
8: "天使",
9: "眨眼",
10: "可爱",
11: "吃",
12: "闭眼",
13: "喜欢",
14: "酷",
15: "得意",
16: "闭嘴",
17: "口罩",
18: "难过",
19: "囧",
20: "吃惊",
21: "撇嘴",
22: "混乱",
23: "吹口哨",
24: "飞吻",
25: "亲",
26: "害羞",
27: "无表情",
28: "大眼睛",
29: "伸舌头",
30: "不高兴",
31: "不开心",
32: "生气",
33: "愤怒",
34: "流鼻涕",
35: "饥饿",
36: "抓狂",
37: "流汗",
38: "叹气",
39: "惊讶",
40: "生病",
41: "快哭了",
42: "哈欠",
43: "可怜",
44: "张嘴笑",
45: "哭",
46: "糗大了",
47: "卖萌",
48: "委屈",
49: "右哼哼",
50: "很开心"
}
}]
});
// 接受服务器传来的u+unicode后转码成图片
function toUnicode(s){
return s.replace(/(u\+{1}[0-9a-fA-F]{4,6})/ig,function(a){
a=a.toLowerCase().substr(2);
return "<span class='emoji emoji"+a+"'></span>";
});
}
var arremoji=[
{'zcname':'微笑','emojicode':'1F604'},
{'zcname':'大笑','emojicode':'1F601'},
{'zcname':'笑哭','emojicode':'1F602'},
{'zcname':'发呆','emojicode':'1F633'},
{'zcname':'睡觉','emojicode':'1F634'},
{'zcname':'尴尬','emojicode':'1F605'},
{'zcname':'抓狂','emojicode':'1F606'},
{'zcname':'天使','emojicode':'1F607'},
{'zcname':'眨眼','emojicode':'1F609'},
{'zcname':'可爱','emojicode':'263A'},
{'zcname':'吃','emojicode':'1F60B'},
{'zcname':'闭眼','emojicode':'1F60C'},
{'zcname':'喜欢','emojicode':'1F60D'},
{'zcname':'酷','emojicode':'1F60E'},
{'zcname':'得意','emojicode':'1F60F'},
{'zcname':'闭嘴','emojicode':'1F567'},
{'zcname':'口罩','emojicode':'1F637'},
{'zcname':'难过','emojicode':'1F612'},
{'zcname':'囧','emojicode':'1F613'},
{'zcname':'吃惊','emojicode':'1F632'},
{'zcname':'撇嘴','emojicode':'1F615'},
{'zcname':'混乱','emojicode':'1F616'},
{'zcname':'吹口哨','emojicode':'1F617'},
{'zcname':'飞吻','emojicode':'1F618'},
{'zcname':'亲','emojicode':'1F60C'},
{'zcname':'害羞','emojicode':'1F61A'},
{'zcname':'无表情','emojicode':'1F636'},
{'zcname':'大眼睛','emojicode':'1F61C'},
{'zcname':'伸舌头','emojicode':'1F61D'},
{'zcname':'不高兴','emojicode':'1F61E'},
{'zcname':'不开心','emojicode':'1F61F'},
{'zcname':'生气','emojicode':'1F620'},
{'zcname':'愤怒','emojicode':'1F621'},
{'zcname':'流鼻涕','emojicode':'1F622'},
{'zcname':'饥饿','emojicode':'1F623'},
{'zcname':'抓狂','emojicode':'1F624'},
{'zcname':'流汗','emojicode':'1F625'},
{'zcname':'叹气','emojicode':'1F626'},
{'zcname':'惊讶','emojicode':'1F627'},
{'zcname':'生病','emojicode':'1F628'},
{'zcname':'快哭了','emojicode':'1F629'},
{'zcname':'哈欠','emojicode':'1F62A'},
{'zcname':'可怜','emojicode':'1F62B'},
{'zcname':'张嘴笑','emojicode':'1F62C'},
{'zcname':'哭','emojicode':'1F62D'},
{'zcname':'糗大了','emojicode':'1F631'},
{'zcname':'卖萌','emojicode':'1F62E'},
{'zcname':'委屈','emojicode':'1F630'},
{'zcname':'右哼哼','emojicode':'1F63E'},
{'zcname':'很开心','emojicode':'1F63A'},
];
// 发送给后台的转换
function toUnicode2(s){
return s.replace(/(?:#{1}[\u4e00-\u9fa5]{1,3}#{1})/g,function(a){
a=a.replace(/#/g,'');
console.log(a);
for(var i=0;i<arremoji.length;i++){
if(a==arremoji[i].zcname){
return 'u+'+arremoji[i].emojicode;
}
}
});
}
$('.fasong').click(function() {
var val = $("#editor").val();
val=toUnicode(val);
$('#getinfo').append('<div class="add"></div>');
$('.add').last().html(val);
// 发送内容给服务器端
var rescc=toUnicode2(val);
console.log(rescc);
$(".add").emojiParse({
icons: [{
path: "img/qq/",
file: ".png",
placeholder: "#{alias}#",
alias: {
1: "微笑",
2: "大笑",
3: "笑哭",
4: "发呆",
5: "睡觉",
6: "尴尬",
7: "抓狂",
8: "天使",
9: "眨眼",
10: "可爱",
11: "吃",
12: "闭眼",
13: "喜欢",
14: "酷",
15: "得意",
16: "闭嘴",
17: "口罩",
18: "难过",
19: "囧",
20: "吃惊",
21: "撇嘴",
22: "混乱",
23: "吹口哨",
24: "飞吻",
25: "亲",
26: "害羞",
27: "无表情",
28: "大眼睛",
29: "伸舌头",
30: "不高兴",
31: "不开心",
32: "生气",
33: "愤怒",
34: "流鼻涕",
35: "饥饿",
36: "抓狂",
37: "流汗",
38: "叹气",
39: "惊讶",
40: "生病",
41: "快哭了",
42: "哈欠",
43: "可怜",
44: "张嘴笑",
45: "哭",
46: "糗大了",
47: "卖萌",
48: "委屈",
49: "右哼哼",
50: "很开心"
}
}]
}); })
</script>
</body> </html>
emoji web端处理的更多相关文章
- 关于emoji表情,支持在app端发送web端显示,web端发送给app端显示,web与wap端互相显示。
要用到emoji.js和emoji.jquery.js两个插件配合实现三端互通. 1.app端发送的emoji表情----到服务器---服务器存储的是‘问号’,无法显示如图所示: 后台的同学也试验了网 ...
- 移动web端的react.js组件化方案
背景: 随着互联网世界的兴起,web前端开发的方式越来越多,出现了很多种场景开发的前端架构体系,也对前端的要求日益增高,早已经不是靠一个JQuery.js来做前端页面的时代了,而今移动端变化最大,近 ...
- web端限时活动逻辑处理总结
由于要在web端做一个限时活动的功能,功能大致为:一个小时内可以报名参加活动,然后给予报名者奖品,先到先得.用到一些处理逻辑做下总结,以前没有做过类似的东西,都是自己先体验其他网站的报名方式,然后再摸 ...
- 小程序 web 端实时运行工具
微信小程序 web 端实时运行工具 https://chemzqm.github.io/wept/
- 力软信息化系统快速开发框架 web端+winform端
力软信息化系统快速开发框架是一套集权限管理+快速开发+动态接口+通用组件+动态UI于一体的全新.net信息化快速开发框架.力软信息化系统快速开发框架的使用,大大地缩短了开发周期,提高了软件质量,同时也 ...
- 基于SignalR的web端即时通讯 - ChatJS
先看下效果. ChatJS 是基于SignalR实现的Web端IM,界面风格模仿的是“脸书”,可以很方便的集成到已有的产品中. 项目官网:http://chatjs.net/ github地址:htt ...
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
- 新手入门:史上最全Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- 基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面
经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI ...
随机推荐
- codeforces 1282 E. The Cake Is a Lie (dfs+构造)
链接:https://codeforces.com/contest/1282/problem/E 题意:给的是一张平面图,是一个n边形,每次可以切一刀,切出一个三角形,最终切成n-2个三角形.题目给出 ...
- leetcode 198 House Robber I
function rob(nums) { if(!nums || nums.length === 0) { return 0; } else if(nums.length < 2){ retur ...
- IntelliJ IDEA 2017.3百度-----树状结构
------------恢复内容开始------------ ------------恢复内容结束------------
- AcWing 896. 最长上升子序列 II
#include<iostream> #include<algorithm> #include<vector> using namespace std; int m ...
- beego登录退出与检查登录过滤器
// ShowLogin 登陆显示 func (c *UserController) ShowLogin() { username := c.Ctx.GetCookie("username& ...
- window cmd下常用操作
创建文件夹 mkdir 创建空文件 type nul>文件名 进入目录 cd 进入分区 分区名 引入文件 当前文件: ./文件名 或 直接文件名 上一级目录文件及上一级目录下子文件:../文件名 ...
- java 中使用logback日志,并实现日志按天分类压缩保存。
以maven项目作为构建工具为例,首先引入使用logback需要的3个依赖,需要注意使用logback是需要引入slf4j-api的,因为logback是基于slf4j的 <!--logback ...
- c++指针,引用,日期,输入输出和数据结构
1,指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明.指针变量声明的一般形式为: int *ip; /* ...
- Jquery获取html参数, jquery.params.js 获取参数
================================ ©Copyright 蕃薯耀 2019年12月31日 http://fanshuyao.iteye.com/ /** * 使用:$.q ...
- static的使用总结
全局静态变量 全局变量前加上关键字static,全局变量就定义成一个全局静态变量.,全局静态变量存储在静态存储区,在整个程序运行期间一直存在.全局静态变量在程序运行之前就存在. 初始化:未经初始化的全 ...