是否可以生成所有表情符号并附加到选择下拉列表?

Yam*_*mel 4 javascript jquery emoji

是否有任何可能的方法来生成所有表情符号并使用JavaScript 将它们附加到单个选择下拉列表中?或者我必须手动输入每个?

<select>
    <option></option>
    <option></option>
<select>

<script>
function()
{
    // How do I put all the emojis into the select dropdown..?
}
</script>
Run Code Online (Sandbox Code Playgroud)

Mad*_*tha 9

您可以定义不同表情符号范围的起始值和结束值.然后,您可以遍历每个范围并将表情符号附加到选项标记.

var mySelect = document.getElementById('mySelect')
var newOption;
var emojRange = [
  [128513, 128591], [9986, 10160], [128640, 128704]
];
//inside emojRange 2d array , define range arrays (start number,end number).
//1st array : Emoticons icons
//2nd range : Dingbats.
//3rd range : Transport and map symbols
for (var i = 0; i < emojRange.length; i++) {
  var range = emojRange[i];
  for (var x = range[0]; x < range[1]; x++) {

    newOption = document.createElement('option');
    newOption.value = x;
    newOption.innerHTML = "&#" + x + ";";
    mySelect.appendChild(newOption);
  }

}
Run Code Online (Sandbox Code Playgroud)

我从这个站点获取了十六进制范围:http://apps.timwhitlock.info/emoji/tables/unicode.

var mySelect = document.getElementById('mySelect')
var newOption;
var emojRange = [
  [128513, 128591] ,[9986,10160],[128640,128704]
];
//inside array define range arrays.
//1st array : Emoticons icons
//2nd range : Dingbats.
//3rd range : Transport and map symbols
for (var i = 0; i < emojRange.length; i++) {
  var range = emojRange[i];
  for (var x = range[0]; x < range[1]; x++) {

    newOption = document.createElement('option');
    newOption.value = x;
    newOption.innerHTML = "&#" + x + ";";
    mySelect.appendChild(newOption);
  }

}
Run Code Online (Sandbox Code Playgroud)
option {
  font-size:50px;
}
Run Code Online (Sandbox Code Playgroud)
<select id="mySelect">
</select>
Run Code Online (Sandbox Code Playgroud)


The*_*aot 5

我从Full Emoji Data, v3.0下载了这些字符,并将它们放入Github 托管的 JavaScript 库中,并在未经许可的情况下发布。

使用它你可以编写如下代码:

var target = document.getElementById("target");
var emojiCount = emoji.length;

for(var index = 0; index < emojiCount; index++)
{
  addEmoji(emoji[index]);
}

function addEmoji(code)
{
  var option = document.createElement('option');
  option.innerHTML =  code;
  target.appendChild(option);
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://rawgit.com/theraot/emoji/master/emoji.js" charset="utf-8"></script>
<select id ="target">
<select>
Run Code Online (Sandbox Code Playgroud)

您可以使用 JavaScript 将列表过滤为仅包含那些没有修饰符的表情符号。

我将在 Github 中复制我为该项目编写的自述文件:


表情符号

JavaScript 的所有表情符号列表

使用方法如下:

<script src="https://rawgit.com/theraot/emoji/master/emoji.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

表情符号列表是从完整表情符号数据 v3.0中检索的

注1:有些表情符号由两个Unicode字符组成。这些使用表情符号修饰符,可能无法正确渲染。

注 2:支持可能因浏览器和平台而异,建议使用表情符号字体。