解析表情符号与文本作为字符串到HTML和保持表情符号在显示顺序

时间:2016-11-08 06:00:26

标签: javascript jquery html

我检查了一些建议,但我找不到任何与在文本中按顺序保持表情符号相关的内容。

我的情况是字符串从php到js(通过ajax)是完美的,然后传递给下面的这个函数。此时字符串看起来像这样

  hello this is a test <a href="javascript:void(0);"><img onclick="addcodesmiley('newmessage',':cry:');return false;" class="smileyeach" src="https://example.com/ow_static/plugins/chat/images/icon_cry.gif" alt="cry" /></a> of the smokey bear <a href="javascript:void(0);"><img onclick="addcodesmiley('newmessage',':mad:');return false;"  class="smileyeach" src="https://example.com/ow_static/plugins/chat/images/icon_mad.gif" alt="mad" /></a> ok then

这是我想要IE文本笑脸文本笑脸的顺序

但是当它离开js并获得html时,它会改变为笑脸笑脸文本的顺序

我认为从我的阅读中可以看出它与使用innerHTML有关,因为图像没有innerHTML。我已经阅读了关于使用DOM和jquery进行解析的细节,但老实说,我不确定这是不是问题,我不想在这里追逐我的尾巴。

这是我用来将数据发布到html的函数,在这个阶段,它的顺序是正确的。除了更改为()()文本的顺序,其他一切工作正常。

为什么订单会改变?我将研究如何纠正它?

  function postchat(userinfo, mess, thetime) 
  {

   /* create the dynamic table cells */
   var chattable = document.getElementById("showChat");
   var row = chattable.insertRow(0);
   var userdat = row.insertCell(0);
   var umsg = row.insertCell(1);
   var mtim = row.insertCell(2);

   /* load the cells */  
   userdat.innerHTML = userinfo;
   umsg.innerHTML = mess;
   mtim.innerHTML = thetime;

   /* set the class for cells */
   userdat.className = 'uinfo';
   umsg.className = 'mess';
   mtim.className = 'when';

   /* move scroll bar down with text */
   updateScroll();

 }//close function postchat

谢谢;)

1 个答案:

答案 0 :(得分:0)

问题解决了它在我的CSS中

表格中的第一个单元格是头像和具有

类别的用户名
 .uinfo {
  width:20%;
  padding-left: 0px;
  text-align: left;
 }

当我第一次设置它时,我想将头像推到一点,所以我添加了

 img {
 float: left;
 padding-left: 5px;
 padding-right: 5px;
 }

并没有将它限制在第一个单元格而是所有图像......所以当我添加表情符号时,我忘了进入并将其限制在那个单元格中。

所以我只需将其改为此

 .uinfo img {
 float: left;
 padding-left: 5px;
 padding-right: 5px;
 }

问题解决了......答案是在框外,我从不认为CSS是解决方案。主要是因为我的脑袋仍然在过去,我想当CSS在HTML中,当我没有看到它时,我不会想到它。它应该更加重要,我在这里吸取了教训。