【问题标题】:Trying to code jQuery HTML5 chat box program with mouse click event response尝试使用鼠标单击事件响应编写 jQuery HTML5 聊天框程序
【发布时间】:2016-04-26 02:25:30
【问题描述】:

我在为学校项目编写聊天框程序时遇到问题。我的程序有 3 个问题。首先,我的聊天消息没有在我的聊天框中正确发布。其次,我希望能够单击退出并将其靠近窗口,但不完全确定该怎么做。最后,我希望聊天能够回显消息或至少有硬编码的响应。我正在研究如何做到这一点我不太确定如何做到这一点。我有一个样式表和 html。这是我的html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src=http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js ></script>
<link rel="stylesheet" type="text/css" href="jQuery.css">



//my issues seem to be in my Javascript between here************************************



<script type="text/javascript">
    $(document).ready(function(){
        $('#submitmsg').click(function(){
            var message = $('#usermsg').val()
            var old = $('#chatbox').html()

            $('#chatbox').html(old + '<p>' + message + '</p>');
        });
    });
</script>
<script >
    function close_window(url){
        var newWindow = window.open('', '_self', ''); //open the current window
        window.close(url);
    };
</script>


//and here*****************************************************************************
</head>
<body>
<div id="wrapper">
    <div id="menu">
        <p class="welcome">Welcome <b></b></p>

//Possible issue here*******************************************************************
        <p class="logout"><a id="exit" href="#" onclick="window.close();">Exit Chat</a></p>
        <div style="clear:both"></div>
    </div>

    <div id="chatbox">
        <p>Here's our chat data</p>
    </div>

    <form name="message" action="">
        <input name="usermsg" type="text" id="usermsg" size="63" />
        <input name="submitmsg" type="submit"  id="submitmsg" value="Send" />
    </form>
</div>      
</body>
</html>  

这是我的 CSS:

body {
font:12px arial;
color: #222;
text-align:center;
padding:35px; }

form, p, span {
    margin:0;
    padding:0; }

input { 
    font:12px arial; }

a {
    color:#0000FF;
    text-decoration:none; }

a:hover { 
    text-decoration:underline; }

#wrapper, #loginform {
    margin:0 auto;
    padding-bottom:25px;
    background:#EBF4FB;
    width:75%;
    border:1px solid #ACD8F0; }

#loginform { 
    padding-top:18px; }

#loginform p { 
    margin: 5px; }

#chatbox {
    text-align:left;
    margin:0 auto;
    margin-bottom:25px;
    padding:10px;
    background:#fff;
    height:270px;
    width:430px;
    border:1px solid #ACD8F0;
    overflow:auto; }

#chatbox p {
    padding:1em;
    margin:1em;
    background:#E6E6E6;
    border:1px solid #BDBDBD;
    -moz-border-radius:4px;
}

#usermsg {
    width:395px;
    border:1px solid #ACD8F0; }

#submit { 
    width: 60px; }


.welcome { 
    float:left; }

.logout { 
    float:right; }

.msgln { 
    margin:0 0 2px 0; }

我很确定有些 css 是不必要的,但是当我尝试取出一些 css 时,它会引起问题。非常感谢任何帮助。

【问题讨论】:

  • 你能否发布足够多的代码,只关注一个问题,而不是向其他问题抛出一些代码并要求修复。
  • 不确定预期的结果是什么?
  • 我的预期结果是输入消息发布在“聊天框”区域。此外,我试图在单击退出聊天时关闭窗口。另外我真的不确定如何回显输入消息。
  • 我已经进去并试图指出我觉得我的问题在哪里。

标签: javascript jquery html chat echo


【解决方案1】:

尝试复制以下内容 - 我将样式放入头部,将 javascript 移至末尾,并将输入交换为按钮。这与 onclick 相关,并将新评论附加到聊天窗口中。它可以工作,但可以做得更好,我还没有解决关闭窗口的问题,但这确实会将新评论发布到聊天区域。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" ></script>
<style>
body {
font:12px arial;
color: #222;
text-align:center;
padding:35px; }

form, p, span {
    margin:0;
    padding:0; }

input { 
    font:12px arial; }

a {
    color:#0000FF;
    text-decoration:none; }

a:hover { 
    text-decoration:underline; }

#wrapper, #loginform {
    margin:0 auto;
    padding-bottom:25px;
    background:#EBF4FB;
    width:75%;
    border:1px solid #ACD8F0; }

#loginform { 
    padding-top:18px; }

#loginform p { 
    margin: 5px; }

#chatbox {
    text-align:left;
    margin:0 auto;
    margin-bottom:25px;
    padding:10px;
    background:#fff;
    height:270px;
    width:430px;
    border:1px solid #ACD8F0;
    overflow:auto; }

#chatbox p {
    padding:1em;
    margin:1em;
    background:#E6E6E6;
    border:1px solid #BDBDBD;
    -moz-border-radius:4px;
}

#usermsg {
    width:395px;
    border:1px solid #ACD8F0; }

#submit { 
    width: 60px; }


.welcome { 
    float:left; }

.logout { 
    float:right; }

.msgln { 
    margin:0 0 2px 0; }
    </style>
</head>
<body>
<div id="wrapper">
    <div id="menu">
        <p class="welcome">Welcome</p>
        <p class="logout"><a id="exit" href="#" onclick="window.close();">Exit Chat</a></p>
        <div style="clear:both"></div>
    </div>

    <div id="chatbox">
        <p>Here's our chat data</p>
    </div>

    <form name="message">
        <input name="usermsg" type="text" id="usermsg" size="63" />
        <button type="button" id="submitmsg" value="send">Send</button>    
    </form>
</div> 

<script>
    $(document).ready(function(){
        $('#submitmsg').click(function(){
            var message = $('#usermsg').val();
            $('#chatbox').append('<p>' + message + '</p>');
            $('#usermsg').val('');
        });
    });

 function close_window(url){
        var newWindow = window.open('', '_self', ''); //open the current window
        window.close(url);
    };
</script>

</body>
</html> 

【讨论】:

  • 非常感谢。我将如何添加回声,以便它重复输入回给我的消息?
  • 对不起-我不明白-如果您在输入中输入例如“test”的消息-它会将“test”放入窗口。这不是你想要的吗? “回声”是什么意思?
  • 我希望程序像服务器回复一样重复我的消息
【解决方案2】:

一个问题是您使用的表单随后会发布到同一页面 - 重新加载它。 我将您的代码复制到了一个测试页(称为 chatTest.html)中,并在点击发送按钮后获得了以下网址:

chatTest.html?usermsg=test+message&submitmsg=Send

您的消息确实会发布到聊天部分,但会在页面重新加载时被删除。并且因为您没有指定方法 - 它将其视为获取表单并将消息作为附加到 url 的查询字符串发布。

如果您打算将 cmets 保存到数据库,那么您应该将表单的操作更改为不同的 php 页面,处理结果并将保存的内容返回到聊天部分 - 可能使用 Ajax 以便您不必;不必在每次聊天提交时重新加载页面。

【讨论】:

  • 我还没学过php的使用,只是在学习ajax。我该怎么做你所描述的?
  • 非常感谢。我将如何添加回声,以便它重复输入回给我的消息?
  • 对不起-我不明白-如果您在输入中输入例如“test”的消息-它会将“test”放入窗口。这不是你想要的吗? “回声”是什么意思? - 如果消息是“你好”,你希望看到什么?目前 - 这将在聊天窗口中以张贴消息的形式返回“你好”。
  • 我想知道如何编写对用户输入内容的响应。我确实希望用户的消息发布在聊天框中,但我不确定如何编写响应
  • 所以您希望它成为系统响应?例如,如果消息是“现在是哪一年?” - 你想回复“2016”吗?这将需要一个包含一系列预期答案的数据库,并且尝试将问题与您存储的答案相匹配会更具挑战性。
猜你喜欢
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多