我正在尝试创建一个聊天室网站,现在,当您加载该网站时,您会看到以下输入字段,要求您输入这样的名称: 输入名称并按下旁边的按钮“继续聊天”后,它将使用以下方式设置用户名:
function setUsername() {
var textbox = document.getElementById("name");
var txtboxval = textbox.value;
if(textbox.value.length <= 20 && textbox.value.length >= 4){
socket.emit('setUsername', document.getElementById('name').value);
setCookie("username", txtboxval, 30);
socket.on('userExists', function(data) {
document.getElementById('messages').innerHTML = data;
});
}
else{
alert("Nimen on oltava vähintään 4 kirjainta pitkä");
return false;
}
};
只要符合要求,它就会将名称设置为您输入的名称,并将其显示在您发送的邮件中,还将值设置为cookie。
现在这仍然可以正常工作,接下来,当我重新加载页面时,它将显示一个弹出窗口,原因是已设置Cookie
问题出在这部分之后,它将转到具有此功能的消息发送页面:
function checkCookie() {
var user = getCookie("username");
if (user != "") {
alert("Welcome again " + user);
setUsername2();
document.body.innerHTML = '<div class="wrapper"><div class="messagebox"><input type = "text" id = "message" placeholder = "Kirjoita viestisi tähän">\
<button type = "button" id="sending" name = "button" onclick = "sendMessage()">Send</button></div>\
<div id = "message-container"></div></div>';
}
}
setUsername2函数:
function setUsername2() {
socket.emit('setUsername', user);
}
此后,它应该加载并显示与cookie消息中提到的名称相同的名称,但它只会返回“ [object Object]”作为名称:
这里出了什么问题,为什么用户无法正确地从Cookie进行设置,这是否有可能是为什么?
请务必询问是否有不清楚的地方,我会尽力解释清楚。