Twemoji的使用以及在textarea中的显示教程

Twitter 公开了开源的其完整的 Emoji 表情图片。开发者可以去GitHub下载完整的表情库,并把这些表情加入到自己的应用或网页中。
这几天的聊天项目中正好用到,记录下来方便使用。
调用方式

<script src="/js/twemoji.min.js"></script>
<script>
    twemoji.parse(document.getElementById('emoji-list'), {size: 36});
</script>

HTML代码

<ul id="emoji-list">
    <li title="笑脸">😁</li>
    <li title="哭脸">😂</li>
    <li title="表情1">😃</li>
    <li title="表情2">😄</li>
    <li title="表情3">😅</li>
    <li title="表情4">😆</li>
    <li title="表情5">😇</li>
    <li title="表情6">😈</li>
    <li title="表情7">😉</li>
    <li title="表情8">😊</li>
    <li title="表情9">😋</li>
    <li title="表情10">😌</li>
</ul>

OK,就这两句代码即可调用。调用后在textarea如何显示,以及提交到页面的显示。由于emoji编码会转义成图片,而textarea不能保存图片,所以,这个时候在textarea中使用就不可以用emoji 的编码,而提交后却需要再次转换位编码,所以,这个过程存在一个替换的过程。所以我们给每个表情列表添加一个title属性。html代码中已呈现。接下来就是替换。

HTML代码

<div class="inputArea">
    <form>
        <textarea></textarea>
        <button type="button" onClick="onMessageSend()">发送</button>
    </form>
</div>
<div class="show"></div>

点击表情js代码

$('#emoji-list li').on('click',function(){
 $(".inputArea textarea").focus(); //获取输入框焦点
 $(".inputArea textarea").val($(".inputArea textarea").val() + '[' + $(this).attr("title") + ']');
});

发送代码

$(".inputArea textarea").ctrlEnter("button", function () {
    //获取textarea中的值并替换回车空格
    var chatMessage = $('.inputArea textarea').val().replace(/\n/g, '_@').replace(/\r/g, '_#');
    chatMessage = chatMessage.replace(/_#_@/g, '<br/>');//IE7-8
    chatMessage = chatMessage.replace(/_@/g, '<br/>');//IE9、FF、chrome
    //替换,只写部分
    chatMessage = chatMessage.replace(/\[哭脸\]/g, '😂');
    chatMessage = chatMessage.replace(/\[笑脸\]/g, '😁');
    chatMessage = chatMessage.replace(/\[表情1\]/g, '😂');
    chatMessage = chatMessage.replace(/\[表情2\]/g, '😄');
    chatMessage = chatMessage.replace(/\[表情3\]/g, '😅');
    chatMessage = chatMessage.replace(/\[表情4\]/g, '😆');
    twemoji.parse(document.getElementsByTagName('body')[0], {size: 36});
});
发送代码时具体的操作协议没有写出,这块主要是讲emoji表情的转码与文字的替换

时间: 2025-01-26 13:06:41

Twemoji的使用以及在textarea中的显示教程的相关文章

在textarea中显示html页面的javascript代码_表单特效

我想让textarea中写的html页面显示为html形式      我知道有htmledit之类的工具   我用不了他的那么多的功能     我只要简单的显示就可以了 1楼 如果你只为显示的话,可以用document.write()      如果还要编辑的话,我觉得你可能还是要用htmledit之类的工具,我现在在研究fckeditor,他有几中类型,有功能少的.嘿嘿,个人之见,希望对你有用. 2楼 <textarea   id=tx1></textarea>      <

jQuery替换textarea中换行的方法

 昨天同事在学习jQuery的时候,希望使用替换掉textarea中的换行. html部分: 1 2 3 4 <fieldset> <textarea id="ncontent"></textarea> </fieldset> <button id="submit">提 交</button> js部分: 1 2 3 4 5 6 7 8 9 $(document).ready(function()

如何用Javascript获得TextArea中的光标位置

javascript|光标 小弟最近在写一个在线编辑器,UBB版的,由于没有使用弹出窗口,所以,在添加代码的时候,只能添在TextArea的最后面,无法在光标之前插入,于是在网上疯狂的找资料,工夫不负有心人,终于被我找到了如何获得TextArea中的位置,但是如果TextArea中有很多内容的时候,会显得很闪烁.其代码如下. function getPos(obj) { obj.focus(); var workRange=document.selection.createRange(); ob

javascript实现textarea中tab键的缩排处理方法

  本文实例讲述了javascript实现textarea中tab键的缩排处理方法.分享给大家供大家参考.具体如下: 网上搜索了一下相关的解决方法,其它的有使用两三行javascript解决的,但都有一些小小的问题.还有使用JQuery的,也非常简洁. 本文的javascript代码实现了在TEXTAREA中输入TAB键并自动缩进的功能.不过这段代码在谷歌浏览器中不能正常执行,在 代码如下: sel =event.srcElement.document.selection.createRange

jQuery往textarea中光标所在位置插入文本的方法

  本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: ? 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 51 52 53 54 55 56 57 58 59 60 61 62 <html> <

一个JavaScript处理textarea中的字符成每一行实例

 <!doctype html>  <html lang="en">    <head>    <meta charset="utf-8">    <title>每天一个JavaScript实例-处理textarea中的字符成每一行</title>    <script>                function clicka(){          console.log(&

Jquery实现点击按钮,连续地向textarea中添加值的实例代码

 本篇文章主要是对Jquery实现点击按钮,连续地向textarea中添加值的实例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下:    代码如下: <%@ page language="java" contentType="text/html; charset=gbk"     pageEncoding="gbk"%>     <%@ include file="/pages/common/t

用javascript获取textarea中的光标位置_javascript技巧

对于写javascript写网页编辑器的人来说,获取textarea中的光标位置是一个非常重要的问题,而往往很多人在这个地方不知所措,找不到好的办法.昨天我在网上找到了一段javascript代码,本来不想把原版放在这里的,就是因为太精彩了,怕我给改坏了,所以还是原版放在这里吧. var start=0;     var end=0;     function add(){                var textBox = document.getElementById("ta"

jQuery替换textarea中换行的方法_jquery

本文实例讲述了jQuery替换textarea中换行的方法.分享给大家供大家参考.具体分析如下: 昨天同事在学习jQuery的时候,希望使用替换掉textarea中的换行. html部分: <fieldset> <textarea id="ncontent"></textarea> </fieldset> <button id="submit">提 交</button> js部分: $(docu