2016-09-24 177 views
-5

我有这样的代码:JavaScript的 - 功能未正确执行

<html> 
<head> 
    <title>Messenger</title> 
</head> 
<body onload="checkcookie(); update();"> 
<div id="whitebg"></div> 
<div id="loginbox"> 
<h1>Pick a username:</h1> 
<p><input type="text" name="pickusername" id="cusername" placeholder="Pick a username" class="msginput"></p> 
<p class="buttonp"><button onclick="chooseusername()">Choose Username</button></p> 
</div> 
<div class="msg-container"> 
    <div class="header">Messenger</div> 
    <div class="msg-area" id="msg-area"></div> 
    <div class="bottom"><input type="text" name="msginput" class="msginput" id="msginput" onkeydown="if (event.keyCode == 13) sendmsg()" value="" placeholder="Enter your message here ... (Press enter to send message)"></div> 
</div> 
<script type="text/javascript"> 

    var msginput = document.getElementById("msginput"); 

    function showLogin() { 
    document.getElementById("whitebg").style.display = "inline-block"; 
    document.getElementById("loginbox").style.display = "inline-block"; 
    } 

    function hideLogin() { 
    document.getElementById("whitebg").style.display = "none"; 
    document.getElementById("loginbox").style.display = "none"; 
    } 

    function chooseusername() { 
    var user = document.getElementById("cusername").value; 
    document.cookie = "messengerUname" + user; 
    checkcookie(); 
    } 

    function checkcookie() { 
    if(document.cookie.indexOf("messageUname") == -1) { 
     showLogin(); 
    } else { 
     hideLogin(); 
    } 
    } 

    function getcookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0; i<ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1); 
     if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 
    } 
    return ""; 
    } 

    function sendmsg() { 
    var message = msginput.value; 
    if(message != "") { 

     var username = getcookie("messengerUname"); 

     var xmlhttp = new XMLHttpRequest(); 

     xmlhttp.onreadystatechange = function() { 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
      console.log(xmlhttp.responseText); 
       } 
     } 

     xmlhttp.open("GET","update-messages.php?username="+username+"&message="+message, true); 
     xmlhttp.send(); 
     } 
    } 
</script> 
</body> 
</html> 

我遇到的问题是,当我设置一个用户名,然后单击“选择用户名”按钮,在hideLogin()函数不执行。您可以看到网站here

我正在使用000webhost来承载它。另一个问题是,当我在控制台中键入sendmsg()时,它说sendmsg没有定义

+1

Tooooooooo lllllloooooooooooooonnnnnnnngggggggggggg!阅读[问]! – Amit

+1

请仅发布有用代码,我们不需要您的样式表 – Adalcar

+0

请仅发布[最小,完整且可验证的示例](http://stackoverflow.com/help/mcve)并非您拥有的一切。 – vlaz

回答

0

据我所知,它为什么会执行?

你不把它在你选择登录功能,并在您的Cookie

不写"messageUname"虽然该错误可能有:

if(document.cookie.indexOf("messageUname") == -1) { 

,因为你的所有其他功能提"messengerUname",我假设这是一个简单的错字。

取代"messageUname""messengerUname",你应该是好

(从来没有这样的JavaScript我可能是错的)