jQuery QQ 表情插件。
点击一个按钮,弹出一个选择QQ表情的组件,点击即可选择表情,插入到textara里面。
查看示例:https://bin20060407.github.io/jquery.qqface/doc/index.html
从 http://kyo4311.github.io/jquery.qqface/ 修改而来,根据实际项目做了相应调整
- 表情选择由多张gif转为一张png背景图,避免一次性载入太多图片
- 表情数量扩充为105
- css 样式改为独立
- 去掉“imgPath”参数
- 引入jQuery
- 引入jquery.qqface.css
- 引入jquery.qqface.js
<div>
<textarea id="liveChatContent" spellcheck="false"></textarea>
</div>
<a href="javascript:;" id="face">表情</a>
// 看起来很简单!
$.qqface({
textarea : $('#liveChatContent'),
handle : $('#face')
});
页面有多个需要输入表情的文本框,对应触发输入也有多个,输入框可能是动态生成
<div>
<textarea id="chat-1" spellcheck="false"></textarea>
</div>
<a href="javascript:;" class="face" data-id="1">表情</a>
<div>
<textarea id="chat-2" spellcheck="false"></textarea>
</div>
<a href="javascript:;" class="face" data-id="2">表情</a>
$.qqface({
handle : 'a.face',
// 动态设置表情插入的文本框
setTextArea : function(current) {
return $('#chat-' + current.data('id'));
}
});
参数 | 类型 | 说明 |
---|---|---|
before | function | 插入前执行回调函数 |
after | function | 插入后执行回调函数 |
handle | string | object | 点击触发表情选择展开元素,jQuery对象或者jQuery选择器字符串 |
setTextArea | function | 动态设置插入textarea对象,返回jQuery对象 |
# clone
git clone ...
# 进入目录
npm install
# 打包发布
npm run build
注: 符号对应微信公众号表情符号
// todo 预处理
content.replace(/\[em_(\d+)\]/g, '<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/$1.gif" />');
// 预处理
$str = nl2br(htmlspecialchars($str));
preg_replace('/\[em_(\d+)\]/', 'https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/$1.gif', $str);
注意: 不管是前端还是后端输出显示,都应做转换换行和转义HTML实体符处理(预防XSS攻击
),参照上方PHP代码
- 新增js、PHP最终显示表情说明
- css 样式支持分离和一起
- 公布到npm
Copyright (c) 2019 Binbin Licensed under the MIT License.