diff --git a/resources/js/chat-room/message-renderer.js b/resources/js/chat-room/message-renderer.js
index 28d3282..9397f2b 100644
--- a/resources/js/chat-room/message-renderer.js
+++ b/resources/js/chat-room/message-renderer.js
@@ -202,9 +202,25 @@ export function appendMessage(msg, renderBatch = null) {
} else if (msg.action === "欢迎") {
div.style.cssText =
"background: linear-gradient(135deg, #eff6ff, #f0f9ff); border: 1.5px solid #3b82f6; border-radius: 5px; padding: 5px 10px; margin: 3px 0; box-shadow: 0 1px 3px rgba(59,130,246,0.12);";
- const fromHtml = clickableUser(msg.from_user, "#1d4ed8", nameClass);
- const parsedContent = parseBracketUsers(msg.content, "#1d4ed8");
- html = `
💬 ${fromHtml}:${parsedContent} (${timeStr})
`;
+ const userName = msg.from_user;
+ const rawContent = msg.content || "";
+ const colonIndex = rawContent.indexOf(":");
+ let clickablePrefix = "";
+ let bodyPart = rawContent;
+ if (colonIndex !== -1) {
+ const prefixStr = rawContent.substring(0, colonIndex);
+ bodyPart = rawContent.substring(colonIndex);
+ const lastIdx = prefixStr.lastIndexOf(userName);
+ if (lastIdx !== -1) {
+ clickablePrefix =
+ prefixStr.substring(0, lastIdx) +
+ clickableUser(userName, "#1d4ed8", nameClass);
+ } else {
+ clickablePrefix = prefixStr;
+ }
+ }
+ const parsedBody = parseBracketUsers(bodyPart, "#1d4ed8");
+ html = `💬 ${clickablePrefix}${parsedBody} (${timeStr})
`;
timeStrOverride = true;
} else if (SYSTEM_USERS.includes(msg.from_user)) {
if (msg.from_user === "系统公告") {