消息中打印 <span> 标签"/>
socket.emit 在格式化消息中打印 <span> 标签
我目前正尝试在 node.js、express.js 和 socket.io 上创建一个小型聊天应用程序,但我在格式化它时遇到问题:出于某种原因,它没有实际使用格式化消息中的标签,而是打印他们聊天
尝试以各种方式格式化它,创建一些其他功能来做到这一点,到目前为止没有任何效果
为什么会这样?
server.js
socket.on('message', (message) => {
const timestamp = new Date().toLocaleTimeString([], { hour12: false, hour: '2-digit', minute: '2-digit' });
const usernameSpan = `<span class="chat-user">${users[socket.id]}</span>`;
const messageSpan = `<span class="chat-message">${message}</span>`;
const timeSpan = `<span class="chat-time">[${timestamp}]</span>`;
const formattedMessage = `${timeSpan} ${usernameSpan}: ${messageSpan}`;
if (message.startsWith('/')) {
const [command, ...args] = message.split(' ');
switch (command) {
// commands go here
}
} else {
messages.push(formattedMessage);
if (messages.length > MAX_MESSAGES) { // if >500 messages already stored
messages.shift();
}
io.emit('message', formattedMessage);
console.log(`${users[socket.id]}: ${message}`);
fs.appendFile('recent-messages.txt', `${formattedMessage}\n`, (err) => {
if (err) {
console.error(err);
}
});
}
});
client.js
socket.on('message', (message) => {
const messageElement = document.createElement('div');
messageElement.setAttribute('class', 'message');
messageElement.textContent = message;
messagesDiv.appendChild(messageElement);
chatBoxDiv.scrollTop = chatBoxDiv.scrollHeight;
checkForSpam();
});
回答如下:
更多推荐
socket.emit 在格式化消息中打印 <span> 标签
发布评论