前端頁面使用emoji


概述

最近在工作中遇到了移動端emoji的顯示問題,於是查找了一些相關資料,試驗了一番,把心得記錄下來,供以后開發時參考,相信對其他人也有用。

參考資料:
為網站添加emoji表情的支持

思路

在頁面上使用emoji主要推薦2個庫:emojify.jsemoji

其實所有emoji庫的思路都是,用js找出字符串里面表示emoji的字符串,然后將它替換為img標簽即可,也可以把它替換為span標簽,然后用雪碧圖的方式引入emoji圖片。

下面來介紹一下這兩個庫的使用方法。

emojify.js

Github鏈接:emojify.js

首先去它的github下載它的css,js和images,然后運用它提供的replace這個api來把emoji字符串替換為圖片。示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="emojify.min.css" />
</head>
<body>
  <div id="emoji"></div>
  <script src="emojify.min.js"></script>
  <script>
    var a = emojify.replace('I am happy :+1:');
    document.querySelector('#emoji').innerHTML = a;
  </script>
</body>
</html>

當然css和js也可以使用它提供的cdn

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/css/basic/emojify.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js"></script>

圖片也可以使用它的cdn,只需要在setConfig這個api里面設置圖片的cdn路徑即可:

emojify.setConfig({img_dir : 'https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/images/basic'});

這個庫的優點是,圖片比較全,功能比較多,star數比較高。但是有一個很嚴重的缺點:就是只能識別雙引號包裹的emoji表情,不能識別Unicode,Utf-16等形式的emoji表情

emoji

Github鏈接:emoji

這個庫相比上個庫,優點是能夠識別Utf-16形式的emoji表情,缺點是里面的emoji圖片不夠完整,有些emoji圖片識別不了(我看源碼發現js的識別代碼還不完整),api就只有一個,而且好久都沒有維護了。

使用方法也很簡單,示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link href="http://cdn.staticfile.org/emoji/0.2.2/emoji.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <div id="emoji"></div>
  <div id="haha">🍐🐶🍐😎⛎🕢👐🔔</div>
  <script type="text/javascript" src="gy.dev.2.1.0.js"></script>
  <script src="http://cdn.staticfile.org/emoji/0.2.2/emoji.js"></script>
  <script>
    var $text = $('#haha');
    var html = $text.html().trim().replace(/\n/g, '<br/>');
    $text.html(jEmoji.unifiedToHTML(html));
  </script>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM