js实现网页在线聊天功能(二)

/*************
第三步步:主体变量赋值
*************/
function set_str(){
 _str="";
 _str=_str+'<!--头部开始-->';
    _str=_str+'<div id="MAIN_DIV_0001_WJL_HEAD" style="float:left;cursor:pointer;width:390px;height:37px; background-image:url('+_url+'Chat/img/title.jpg); overflow:hidden;" onMouseDown=moveInit("MAIN_DIV_0001_WJL",event) onMouseMove=Move("MAIN_DIV_0001_WJL",event) onMouseUp=stopMove() onMouseOut=stopMove()>';
    _str=_str+'<div id="MAIN_DIV_0001_WJL_HEAD_IMG" style="float:left;width:50px;height:37px; padding-top:3px;" align="center">';
    _str=_str+'<img src="'+_url+'Chat/img/head.jpg" width="30" height="30">';
    _str=_str+'</div>';
    _str=_str+'<div id="MAIN_DIV_0001_WJL_HEAD_INFOR" style="float:left;width:304px;height:37px; padding-top:5px; font-size:12px" align="left">';
 _str=_str+'<div style="float:left;"><img src="'+_url+'Chat/img/enter.jpg" width="20" height="20" align="absmiddle"></div>';
    _str=_str+'<div id="MAIN_DIV_0001_WJL_HEAD_ENTER_NAME" style="color:#4c4c4c;float:left;padding-top:5px;padding-left:5px;">'+ _RNAME +'</div>';
    _str=_str+'<div id="MAIN_DIV_0001_WJL_HEAD_ENTER_TYPE" style="color:#4c4c4c;float:left;padding-top:5px;padding-left:5px;">['+ _RTYPE +']</div>';
    _str=_str+'</div>';
    _str=_str+'<div id="MAIN_DIV_0001_WJL_HEAD_CLOSE" style="float:left;width:35px;height:37px; padding-top:0px;" align="center">';
 _str=_str+'<img src="'+_url+'Chat/img/close.jpg" width="35" height="14" title="点击关闭聊天!" onClick="CloseChat()">';
    _str=_str+'</div>';
  _str=_str+'</div>';
   _str=_str+'<!--头部结束-->';
   _str=_str+'<!--查看信息开始-->';
   _str=_str+'<div id="MAIN_DIV_0001_WJL_MESSAGE" style="width:390px;height:163px;scrollbar-face-color: #E0EEF8; scrollbar-highlight-color:#E0EEF8;overflow-x:hidden;overflow:scroll;scrollbar-3dlight-color: #FFFFFF; scrollbar-arrow-color:#38B0C1;scrollbar-track-color: #fcfcfc; scrollbar-darkshadow-color:#fcfcfc;font-size:12px;padding:5px;" align="left">';
   //_str=_str+'<iframe src="Chat/NowMessage.html" height="163" width="390" name="Lookinfor" id="Lookinfor" frameborder="no" border=0 marginheight="0" marginwidth="0"></iframe>';
   _str=_str+'</div>';
   _str=_str+'<!--查看信息结束-->';
   _str=_str+'<!--工具开始-->';
   _str=_str+'<div id="MAIN_DIV_0001_WJL_TOOL" style="width:390px;height:20px;overflow:hidden; background-color:#E0EEF8;">';
   _str=_str+'<div style="float:left; width:50px;height:20px;overflow:hidden;" align="center"><img src="'+_url+'Chat/img/biaoqing.jpg" width="20" height="20" style="cursor:pointer;" title="插入表情" onClick="CreateImgDiv();"></div>';
    _str=_str+'<div style="float:left;width:240px;"></div>';
    _str=_str+'<div style="float:left;width:100px;" align="center">';
    _str=_str+'<div style="float:left;width:20px;padding-top:2px; overflow:hidden;"><img src="'+_url+'Chat/img/mymasg.jpg" width="20" height="17"></div>';
    _str=_str+'<div style="float:left;width:60px;font-size:12px; padding-top:4px;overflow:hidden;" align="left"><a style="cursor:pointer;"href="'+_url+'CAS/allmymessage.jsp" target="_blank" title="查看历史消息记录">消息记录</a></div>';
    _str=_str+'</div>';
   _str=_str+'</div>';
   _str=_str+'<!--工具结束-->';
   _str=_str+'<!--编辑开始-->';
   _str=_str+'<div id="MAIN_DIV_0001_WJL_EDIT" style="MAIN_DIV_0001_WJL_EDIT_ss" style="scrollbar-face-color: #E0EEF8; scrollbar-highlight-color:#E0EEF8;overflow-x:hidden;overflow:scroll;width: 390px;scrollbar-3dlight-color: #FFFFFF; scrollbar-arrow-color:#38B0C1;scrollbar-track-color: #fcfcfc; scrollbar-darkshadow-color:#fcfcfc;height: 75px" align="left">';
 //
   _str=_str+'<iframe src="'+_url+'Chat/Edit.html" height="5000" width="390"  id="Editr_wjl_001_E" name="Editr_wjl_001_E" οnlοad="Edit();" frameborder="no" border=0 marginheight="0" marginwidth="0"></iframe>';
   _str=_str+'</div>';
   _str=_str+'<!--编辑结束-->';
   _str=_str+'<!--编辑开始-->';
   _str=_str+'<div id="MAIN_DIV_0001_WJL_EDIT" style="width:390px;height:30px;overflow:hidden;background-color:#E0EEF8;">';
   _str=_str+'<div  style="float:left;width:240px; padding-top:5px; font-size:12px; color:#4c4c4c;" align="left"><input name="TYPE_Mess_wjl" id="TYPE_Mess_wjl" type="checkbox"  onClick="CGTYPE();" checked><span id="USE_SEND_TYPE_WJL_001_I">使用Ctrl+Enter发送</span></div>';
    _str=_str+'<div  style="float:left;width:150px; padding-top:4px;" align="center"><input name="send_Mess_wjl" id="send_Mess_wjl" type="button" value="发送(S)" onClick="b_send();"><input name="close_Mess_wjl" id="close_Mess_wjl" type="button" value="关闭(C)" onClick="CloseChat()"></div>';
 return _str;
}

/***移动DIV
用法onMouseDown="moveInit('movediv',event);" onMouseMove="Move('movediv',event)" onMouseUp="stopMove()" onMouseOut="stopMove()"
****/
function moveInit(divID,evt){
 _IsMousedown = 1;
 if(getBrowserType() == "NSupport"){
   return;
 }
 var obj = getObjById(divID);
 if(getBrowserType() == "fox"){
    _ClickLeft = evt.pageX - parseInt(obj.style.left);
    _ClickTop = evt.pageY - parseInt(obj.style.top);
 }else{
    _ClickLeft = evt.x - parseInt(obj.style.left);
    _ClickTop = evt.y - parseInt(obj.style.top);
 }
}
 
function Move(divID,evt){
 var s=document.getElementById("IMG_WJL_CHAT_CET");
 if(s){
  CloseDiv(_Imgdiv);
 }
 if(_IsMousedown == 0){
   return;
 }
 var objDiv = getObjById(divID);
 if(getBrowserType() == "fox"){
  if(evt.pageX - _ClickLeft<=0){
   objDiv.style.left = 0;
  }else{
   if(evt.pageX - _ClickLeft + 391 >=document.body.scrollWidth){
    objDiv.style.left = document.body.scrollWidth-390;
   }else{
     objDiv.style.left = evt.pageX - _ClickLeft;
   }
  }
  if(evt.pageY - _ClickTop<=0){
    objDiv.style.top = 0;
  }else{
   if(evt.pageY - _ClickTop + 328>=document.body.scrollHeight){
    objDiv.style.top = document.body.scrollHeight-328;
   }else{
    objDiv.style.top = evt.pageY - _ClickTop;
   }
  }
 }else{
  if(evt.x - _ClickLeft<=0){
   objDiv.style.left = 0;
  }else{
   if(evt.x - _ClickLeft + 391 >=document.body.scrollWidth){
    objDiv.style.left = document.body.scrollWidth-390;
   }else{
     objDiv.style.left = evt.x - _ClickLeft;
   }
  }
  if(evt.y - _ClickTop<=0){
    objDiv.style.top = 0;
  }else{
   if(evt.y - _ClickTop + 328>=document.body.scrollHeight){
    objDiv.style.top = document.body.scrollHeight-328;
   }else{
    objDiv.style.top = evt.y - _ClickTop;
   }
  }
 }
}
function stopMove(){
 _IsMousedown = 0;
}
function getObjById(id){
 return document.getElementById(id);
}
function getBrowserType(){
 var browser=navigator.appName;
 var b_version=navigator.appVersion;
 var version=parseFloat(b_version);
 if ((browser=="Netscape")){
  return "fox";
 }else if(browser=="Microsoft Internet Explorer"){
   return "ie";
 }else{
  return "NSupport";
 }
}
//关闭DIV
function CloseDiv(divobj)
{
    divobj.parentNode.removeChild(divobj);
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现网页聊天功能,需要使用前端的技术如HTML、CSS、JavaScript,以及后端技术如Java Servlet或者JSP等。 以下是一个简单的网页聊天功能的界面代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Web Chat</title> <style> #messages { height: 300px; overflow-y: scroll; } </style> </head> <body> <h1>Web Chat</h1> <div id="messages"></div> <form onsubmit="return sendMessage()"> <input type="text" id="messageInput" placeholder="Type your message here..."> <button>Send</button> </form> <script> var socket = new WebSocket("ws://localhost:8080/chat"); socket.onmessage = function(event) { var message = event.data; var messagesDiv = document.getElementById("messages"); messagesDiv.innerHTML += "<p>" + message + "</p>"; }; function sendMessage() { var messageInput = document.getElementById("messageInput"); socket.send(messageInput.value); messageInput.value = ""; return false; } </script> </body> </html> ``` 这个界面代码示例中包含一个聊天消息展示区域和一个消息发送表单。通过JavaScript中的WebSocket对象建立连接并监听接收到的消息,将接收到的消息显示在聊天消息展示区域中。同时,发送表单中的消息通过WebSocket对象发送到服务器端。 在服务器端,可以使用Java Servlet或JSP来处理WebSocket连接和消息的收发。这里给出一个简单的Servlet代码示例: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.websocket.OnMessage; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/chat") @WebServlet("/chat") public class ChatServlet extends HttpServlet { private static final long serialVersionUID = 1L; private Session session; @OnMessage public void onMessage(String message) throws IOException { session.getBasicRemote().sendText(message); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/WEB-INF/chat.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // handle form submission } @Override public void onOpen(Session session) { this.session = session; } @Override public void onClose(Session session) { this.session = null; } } ``` 这个Servlet代码示例使用了Java WebSocket API,通过@ServerEndpoint注解声明WebSocket连接地址,并在onOpen、onClose和@OnMessage注解的方法中处理WebSocket连接和消息的收发。同时,doGet方法用于返回聊天界面,doPost方法用于处理表单提交,但这里并没有实现表单处理的相关代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值