gpt4 book ai didi

javascript - 在 Javascript 中格式化用户发送的聊天消息

转载 作者:行者123 更新时间:2023-12-03 11:59:37 24 4
gpt4 key购买 nike

我已经在Python中创建了一个WebSocket服务器,并且我有一个使用该Web服务器的Web聊天,Web聊天框(显示用户发送的消息)的高度为83px,宽度为1176px。

我希望我的用户消息沿着聊天框水平显示(与聊天框大小规范相应),而不是传统的消息列表类型显示,所以看起来好像我的用户正在完成彼此的消息句子。

进一步澄清我的意思:

userA 类型:“嗨,我的名字是詹姆斯”

userB 类型:“当然是”

聊天框输出:嗨,我的名字是詹姆斯,当然是

有没有什么有效的方法来完成这个任务?这是我到目前为止所拥有的,请注意,这并不多!

s = new WebSocket(host);

s.onopen = function (e) { log_msg("connected..."); };
s.onclose = function (e) { log_msg("connection closed."); };
s.onerror = function (e) { log_msg("connection error."); };
s.onmessage = function (e) { log_msg("message: " + e.data); };
} catch (ex) {

HTML

<fieldset id="messages" class = "focus-actions""> </fieldset>

根据要求提供更多代码

var messages;
var form;
var inputBox;

function log_msg(msg) {
var p = document.createElement("p");
p.innerHTML = msg;
messages.appendChild(p);
}

function doInit() {
inputBox = document.getElementById("message");
messages = document.getElementById("messages");
form = document.getElementById("message-form");
var s;
try {
var host = "ws://localhost:4545/";
if(window.location.hostname) {
host = "ws://" + window.location.hostname + ":4545/";
}

s = new WebSocket(host);

s.onopen = function (e) { log_msg("connected..."); };
s.onclose = function (e) { log_msg("connection closed."); };
s.onerror = function (e) { log_msg("connection error."); };
s.onmessage = function (e) { log_msg("message: " + e.data); };
} catch (ex) {
log_msg("connection exception:" + ex);
}

form.addEventListener("submit", function (e) {
e.preventDefault();
s.send(inputBox.value);
inputBox.value = "";
}, false);
}

最佳答案

在当前函数log_msg中:

function log_msg(msg) {
var p = document.createElement("p");
p.innerHTML = msg;
messages.appendChild(p);
}

您正在创建“段落”元素,即 block-level元素(与 inline 元素相对)。

您可以为 css 中的 p 元素创建备用样式规则:

#messages p    { display: inline }

对于这些段落(您可能需要指定/覆盖其他特定于浏览器的默认样式),

或者(更逻辑地)您更改它以创建一个跨元素(内联):

在您的函数log_msg中:

function log_msg(msg) {
var p = document.createElement("span");
p.innerHTML = msg;
messages.appendChild(p);
}

或简化:

function log_msg(msg) {
messages.appendChild(document.createElement("span")).innerHTML = msg;
} //appendChild returns child, thats why you can set innerHTML directly

请注意,您可能需要在 msg 中考虑前导和尾随空格(尤其是缺少空格)!示例:

msg.trim()+' '   // or for older browsers: msg.replace(/^\s+|\s+$/g, '')+' '

希望这有帮助!

关于javascript - 在 Javascript 中格式化用户发送的聊天消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com