在css中为特定用户更改文本颜色(node js聊天)

ulydmbyx  于 2023-04-08  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个简单的聊天室,用户可以互相聊天。我想要的是,如果user1写了一些文本,并发送它会出现在白色,让他说,他只有任何其他文本从其他用户将是黑色的颜色。我知道可能有一个简单的CSS解决方案,但我不能弄清楚。下面是HTML代码。

<ul id="messages"></ul>
<form id="form" action="">
  <input id="input" autocomplete="off" /><button class="btn-primary"><b>Send</b></button>
</form>
<script src="/torrent-tracker/template/node_modules/socket.io/client-dist/socket.io.js"></script>
<script>
  var url = "http://someurl.net";
  const socket = io(url);

  var messages = document.getElementById('messages');
  var form = document.getElementById('form');
  let input = document.getElementById('input');
  var upime = "<?php echo $upime.": ";?>";
  var uporabnik = "<?php echo $upime;?>";

  socket.emit('newUser', uporabnik);

  form.addEventListener('submit', function(e){
    e.preventDefault();
    if(input.value){
      <?php last_action(); ?>
      socket.emit('PosljiSporocilo', upime+input.value);
      console.log(upime+input.value);
      input.value = '';
    }
  });

  socket.on('DobiSporocilo', Sporocilo => {
    var item = document.createElement('li');
    item.textContent = Sporocilo;
    messages.appendChild(item);
    window.scrollTo(0, document.body.scrollHeight);
  });

  socket.on('newUserJoined', joinedUser => {
    var item = document.createElement('li');
    item.textContent = joinedUser;
    messages.appendChild(item);
    window.scrollTo(0, document.body.scrollHeight);
  });
</script>
6rqinv9w

6rqinv9w1#

我猜$upime变量保存了一个用户名,消息看起来像<li>userName:blah-blah-blah</li>。如果是这样,您需要以这种方式修改消息侦听器

socket.on('DobiSporocilo', Sporocilo => {
        var item = document.createElement('li');
        item.textContent = Sporocilo;
        if (Sporocilo.match(new RegExp("^"+upime)){ item.classList.add('my-message');}
        messages.appendChild(item);
        window.scrollTo(0, document.body.scrollHeight);
      });

并添加样式

<style>
   .my-message{
      color:white;
   }
</style>

相关问题