是一个在线服务功能,原来在网站上,现在老大要把他放在办公平台上,原来登陆取消,只使用平台登陆,但是这个功能是另一个用js做的,我一点都不懂,今天就要完成,求各位帮忙!这是部分关键的代码代码MessageForm.js
var isCanRequest = true;
var isNeedUpdate = true;
var updateTimeInit =2;
var updateTime = updateTimeInit;
var uId = "0";
var uName = "";
var intervalTimeInit = 3;
var intervalTime = intervalTimeInit;
var interval = 800;
var intervalObject = null;
var csButtonValue = "Add Message";function refreshMessage()
{
if(isCanRequest)
{
disposeUpdateMessage();
}
}function disposeSendMessage()
{
if(!messageCheck())
return false;
var messageContent = getMessageObject().value;
var now = new Date();
var m = new Message();
m.sUId = uId;
m.sUName = uName;
m.releaseDateTime = now;
m.content = getMessageObject().value;
disposeAddMessage(m);
updateTime = updateTimeInit;
isCanRequest = false;
doSendMessage(uId,messageContent,updateProcess,handleDoSendMessage);
clearMessage();
adjustMessageList();
}function disposeAddMessage(m)
{
var ml = getMessageListObject();
var rd = new Date(m.releaseDateTime);
var sendDateTime = (rd.getMonth()+1) + "/" + rd.getDate() + "/" + rd.getYear()+" "
+rd.getHours()+":"+rd.getMinutes()+":" + rd.getSeconds();
if(ml.value != "")
{
ml.value += "\n";
} ml.value += m.sUName + " " + sendDateTime
+ "\n" + m.content;
}function disposeUpdateMessage()
{
//doUpdateMessage(uid,updateProcessMethod,resultHandler)
if(isNeedUpdate && (updateTime>0))
doUpdateMessage(uId,updateProcess,handleDoUpdateMessage);
}function updateProcess()
{
}function customerLogin()
{
//window.open("../security/login.aspx","","scrollbars=no");
//window.close("MessageForm.aspx","","");
//window.open("CustomerLogin.htm","","width=400,height=300,scrollbars=no");
}function messageCheck()
{
if(uId=="0")
{
alert("Please login first!");
customerLogin();
return false;
}
if(getMessageObject().value == "")
{
alert("Message content can't be empty!");
return false;
}
else
return true;
}function getMessageListObject()
{
return document.getElementById("messageList");
}function getMessageObject()
{
return document.getElementById("message");
}function getButtonObject()
{
return document.getElementById("btnAddMessage");
}function initializeComponents()
{
getMessageListObject().onkeydown = function(){return false;}
getButtonObject().onclick = disposeSendMessage;
updateTime = 0;
window.setInterval(refreshMessage,interval*3);
//getMessageListObject().canHaveHTML = true;
customerLogin();
}function handleDoSendMessage(response)
{
var result = parseSendMessageResult(response,"AddMessageResult");
getMessageListObject().value += "(Send " + result + ")";
isNeedUpdate = true;
isCanRequest = true;
}function handleDoUpdateMessage(response)
{
var messages = parseUpdateMessageResult(response);
var m = null;
if(messages.length>0)
updateTime--;
else
return;
for(var i=0;i<messages.length;i++)
{
m = messages[i];
if(m instanceof Message)
disposeAddMessage(m);
adjustMessageList();
}
}function clearMessage()
{
getMessageObject().value = "";
sendMessageResume();
intervalTime = intervalTimeInit;
intervalObject = window.setInterval(intervalHint,interval);
}function adjustMessageList()
{
//this.style.posHeight=this.scrollHeight
/*
alert("style.posHeight:"+getMessageListObject().style.posHeight+"\n"
+ "scrollHeight:"+getMessageListObject().scrollHeight+"\n"
+ "scrollTop:"+getMessageListObject().scrollTop+"\n"
+ "offsetTop:"+getMessageListObject().offsetTop+"\n"
+ "offsetHeight:"+getMessageListObject().offsetHeight+"\n"
+ "clientHeight:"+getMessageListObject().clientHeight+"\n"
+ "clientTop:"+getMessageListObject().clientTop+"\n"
+ "scrollHeight:"+getMessageListObject().scrollHeight+"\n"
+ "scrollTop:"+getMessageListObject().scrollTop);
*/
//getMessageListObject().style.posHeight = getMessageListObject().scrollHeight;
var ml = getMessageListObject();
var heightDiff = ml.scrollHeight - ml.clientHeight;
if(heightDiff>0)
ml.scrollTop = heightDiff;
}function intervalHint()
{
if(intervalTime<=0)
{
getButtonObject().value = csButtonValue;
sendMessageSuspend();
clearInterval(intervalObject);
return;
}
getButtonObject().value = csButtonValue + "(" + intervalTime + ")";
intervalTime--;
}
function sendMessageResume()
{
getButtonObject().disabled = true;
}
function sendMessageSuspend()
{
getButtonObject().disabled = false;
}
前台
<%@ Page language="c#" Codebehind="MessageForm.aspx.cs" AutoEventWireup="false" Inherits="WebChatOnline.MessageForm" %>
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="content-type" Content="application/x-www-form-urlencoded; charset=utf-8">
<script language="javascript" type="text/javascript" src="JsLib/Config.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/Common.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/AjaxHelperV3.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/MessageHandler.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/MessageForm.js"></script>
</HEAD>
<body onload="javascript:initializeComponents();">
<form id="Form1" method="post" runat="server">
<textarea id="messageList" rows="10" cols="50"></textarea><br>
<textarea id="message" rows="4" cols="40"></textarea> <input id="btnAddMessage" name="message" value="Add Message" type="button">
</form>
</body>
</HTML>
var isCanRequest = true;
var isNeedUpdate = true;
var updateTimeInit =2;
var updateTime = updateTimeInit;
var uId = "0";
var uName = "";
var intervalTimeInit = 3;
var intervalTime = intervalTimeInit;
var interval = 800;
var intervalObject = null;
var csButtonValue = "Add Message";function refreshMessage()
{
if(isCanRequest)
{
disposeUpdateMessage();
}
}function disposeSendMessage()
{
if(!messageCheck())
return false;
var messageContent = getMessageObject().value;
var now = new Date();
var m = new Message();
m.sUId = uId;
m.sUName = uName;
m.releaseDateTime = now;
m.content = getMessageObject().value;
disposeAddMessage(m);
updateTime = updateTimeInit;
isCanRequest = false;
doSendMessage(uId,messageContent,updateProcess,handleDoSendMessage);
clearMessage();
adjustMessageList();
}function disposeAddMessage(m)
{
var ml = getMessageListObject();
var rd = new Date(m.releaseDateTime);
var sendDateTime = (rd.getMonth()+1) + "/" + rd.getDate() + "/" + rd.getYear()+" "
+rd.getHours()+":"+rd.getMinutes()+":" + rd.getSeconds();
if(ml.value != "")
{
ml.value += "\n";
} ml.value += m.sUName + " " + sendDateTime
+ "\n" + m.content;
}function disposeUpdateMessage()
{
//doUpdateMessage(uid,updateProcessMethod,resultHandler)
if(isNeedUpdate && (updateTime>0))
doUpdateMessage(uId,updateProcess,handleDoUpdateMessage);
}function updateProcess()
{
}function customerLogin()
{
//window.open("../security/login.aspx","","scrollbars=no");
//window.close("MessageForm.aspx","","");
//window.open("CustomerLogin.htm","","width=400,height=300,scrollbars=no");
}function messageCheck()
{
if(uId=="0")
{
alert("Please login first!");
customerLogin();
return false;
}
if(getMessageObject().value == "")
{
alert("Message content can't be empty!");
return false;
}
else
return true;
}function getMessageListObject()
{
return document.getElementById("messageList");
}function getMessageObject()
{
return document.getElementById("message");
}function getButtonObject()
{
return document.getElementById("btnAddMessage");
}function initializeComponents()
{
getMessageListObject().onkeydown = function(){return false;}
getButtonObject().onclick = disposeSendMessage;
updateTime = 0;
window.setInterval(refreshMessage,interval*3);
//getMessageListObject().canHaveHTML = true;
customerLogin();
}function handleDoSendMessage(response)
{
var result = parseSendMessageResult(response,"AddMessageResult");
getMessageListObject().value += "(Send " + result + ")";
isNeedUpdate = true;
isCanRequest = true;
}function handleDoUpdateMessage(response)
{
var messages = parseUpdateMessageResult(response);
var m = null;
if(messages.length>0)
updateTime--;
else
return;
for(var i=0;i<messages.length;i++)
{
m = messages[i];
if(m instanceof Message)
disposeAddMessage(m);
adjustMessageList();
}
}function clearMessage()
{
getMessageObject().value = "";
sendMessageResume();
intervalTime = intervalTimeInit;
intervalObject = window.setInterval(intervalHint,interval);
}function adjustMessageList()
{
//this.style.posHeight=this.scrollHeight
/*
alert("style.posHeight:"+getMessageListObject().style.posHeight+"\n"
+ "scrollHeight:"+getMessageListObject().scrollHeight+"\n"
+ "scrollTop:"+getMessageListObject().scrollTop+"\n"
+ "offsetTop:"+getMessageListObject().offsetTop+"\n"
+ "offsetHeight:"+getMessageListObject().offsetHeight+"\n"
+ "clientHeight:"+getMessageListObject().clientHeight+"\n"
+ "clientTop:"+getMessageListObject().clientTop+"\n"
+ "scrollHeight:"+getMessageListObject().scrollHeight+"\n"
+ "scrollTop:"+getMessageListObject().scrollTop);
*/
//getMessageListObject().style.posHeight = getMessageListObject().scrollHeight;
var ml = getMessageListObject();
var heightDiff = ml.scrollHeight - ml.clientHeight;
if(heightDiff>0)
ml.scrollTop = heightDiff;
}function intervalHint()
{
if(intervalTime<=0)
{
getButtonObject().value = csButtonValue;
sendMessageSuspend();
clearInterval(intervalObject);
return;
}
getButtonObject().value = csButtonValue + "(" + intervalTime + ")";
intervalTime--;
}
function sendMessageResume()
{
getButtonObject().disabled = true;
}
function sendMessageSuspend()
{
getButtonObject().disabled = false;
}
前台
<%@ Page language="c#" Codebehind="MessageForm.aspx.cs" AutoEventWireup="false" Inherits="WebChatOnline.MessageForm" %>
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="content-type" Content="application/x-www-form-urlencoded; charset=utf-8">
<script language="javascript" type="text/javascript" src="JsLib/Config.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/Common.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/AjaxHelperV3.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/MessageHandler.js"></script>
<script language="javascript" type="text/javascript" src="JsLib/MessageForm.js"></script>
</HEAD>
<body onload="javascript:initializeComponents();">
<form id="Form1" method="post" runat="server">
<textarea id="messageList" rows="10" cols="50"></textarea><br>
<textarea id="message" rows="4" cols="40"></textarea> <input id="btnAddMessage" name="message" value="Add Message" type="button">
</form>
</body>
</HTML>
解决方案 »
- [100]一个asp.net mvc部署的问题
- 怎么获取MSN 好友邮箱列表
- 一般处理程序的浏览问题
- 如何才能不自动播放
- 高分求AJAX .net实现google的文本框输入任意字符串搜索相关数据并且显示到层里的例子
- .net下socket和flash的socket通讯的问题。
- 毕业设计问题,好急!~~~~~~~帮我看看怎么办好!!~~~~~~~
- 帮我看看一个很简单的问题:“输入字符串的格式不正确。 ”
- 请教:如何在repeater中动态生成模板。
- 如何判断DataSet中的数据为空,高手请教!!!
- 知名软件公司的面试题,看看你会了吗?
- JavaScript event=onclick 的問題.
MessageServer.asmxusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.Data;
using LJ;
namespace WebChatOnlineService
{
/// <summary>
/// 信息
/// </summary>
public struct Message
{
public int mId;
public int sUId; //source user id
public string sUName; //source user name
public int dUId; //dest user id
public string dUName; //dest user name
public string releaseDateTime;
public string content;
} public struct Customer
{
public int cId;
public string name;
} /// <summary>
/// MessageServer 的摘要说明。
/// </summary>
public class MessageServer : System.Web.Services.WebService
{
private string strCon = "";
public string StrCon
{
get
{
if( strCon == "" || strCon == null )
{
strCon = System.Configuration.ConfigurationSettings.AppSettings["strcon"];
return strCon;
}
else
return strCon;
}
} public MessageServer()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
} #region 组件设计器生成的代码
//Web 服务设计器所必需的
private IContainer components = null;
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion // WEB 服务示例
// HelloWorld() 示例服务返回字符串 Hello World
// 若要生成,请取消注释下列行,然后保存并生成项目
// 若要测试此 Web 服务,请按 F5 键// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
/// <summary>
///
/// </summary>
/// <param name="uId"></param>
/// <param name="content"></param>
/// <returns></returns>
[WebMethod]
public bool AddMessage(int uId,string content)
{
DB db = null;
try
{
db = new DB(StrCon);
string sqlCmd = "INSERT INTO ChatMessage(type,sourceUid,content)"
+"VALUES('C',"+uId.ToString()+",'"+content+"')";
int i = db.ExeQuery(sqlCmd);
if(i>0)
return true;
else
return false; }
catch(Exception ex)
{
return false;
}
finally
{
if(db != null)
db.Dispose();
db = null;
}
}
/// <summary>
///
/// </summary>
/// <param name="mId"></param>
/// <param name="sUId"></param>
/// <param name="dUId"></param>
/// <param name="content"></param>
/// <returns></returns>
[WebMethod]
public bool AddAnswerMessage(int mId,int sUId,int dUId,string content)
{
DB db = null;
try
{
db = new DB(StrCon);
string sqlCmd = "Exec UP_AddAnswerMessage "
+ mId.ToString() +","
+ sUId.ToString() +","
+ dUId.ToString() +","
+ "'"+ content +"'";
int i = db.ExeQuery(sqlCmd);
if(i>0)
return true;
else
return false; }
catch(Exception ex)
{
return true;
}
finally
{
if(db != null)
db.Dispose();
db = null;
}
return true;
}
/// <summary>
///
/// </summary>
/// <param name="uId"></param>
/// <returns></returns>
[WebMethod]
public Message[] UpdateMessage(int uId)
{
Message[] messages = null;
System.Data.DataSet ds = null;
DB db = null;
int messageCount = 0;
Message aMessage;
string sqlCmd = "Exec UP_GetAnswerMessage " + uId.ToString();
try
{
db = new DB();
ds = db.GetDataSet(sqlCmd);
messageCount = ds.Tables[0].Rows.Count;
if(messageCount>0)
{
messages = new Message[messageCount];
for(int i = 0;i<messageCount;i++)
{
//mid,sourceUid,releaseDateTime,content
System.Data.DataRow r = ds.Tables[0].Rows[i];
aMessage = new Message();
aMessage.mId = Convert.ToInt32(r["mid"].ToString());
aMessage.sUId = Convert.ToInt32(r["sourceUid"].ToString());
aMessage.sUName = "Service"+aMessage.sUId.ToString();
aMessage.releaseDateTime = r["releaseDateTime"].ToString();
aMessage.dUId = 0;
aMessage.dUName = "";
aMessage.content = r["content"].ToString();
messages[i] = aMessage;
}
}
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
if(ds!=null)
ds.Dispose();
ds = null;
if(db!=null)
db.Dispose();
db = null;
} /*
int i =2;
//日期格式 2007/6/16 10:35:26
Message[] messages = new Message[i];
messages[0].mId = 1;
messages[0].sUId = 11;
messages[0].sUName = "客服001";
messages[0].dUId = 0;
messages[0].dUName = "";
messages[0].releaseDateTime = DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);;
messages[0].content = "你好!";
messages[1].mId = 2;
messages[1].sUId = 11;
messages[1].sUName = "客服001";
messages[1].dUId = 12;
messages[1].dUName = "LJ";
messages[1].releaseDateTime = DateTime.Now.ToString().Replace("-","/");
messages[1].content = "有什么能帮到您的吗?";
*/
return messages;
}
/// <summary>
/// 获取客户消息(客户问题)
/// </summary>
/// <param name="uId"></param>
/// <returns></returns>
[WebMethod]
public Message[] UpdateCustomerMessage(int uId)
{
Message[] messages = null;
System.Data.DataSet ds = null;
DB db = null;
int messageCount = 0;
Message aMessage;
string sqlCmd = "Exec UP_GetCustomerMessages " + uId.ToString();
try
{
db = new DB();
ds = db.GetDataSet(sqlCmd);
messageCount = ds.Tables[0].Rows.Count;
if(messageCount>0)
{
messages = new Message[messageCount];
for(int i = 0;i<messageCount;i++)
{
//mid,sourceUid,releaseDateTime,content
System.Data.DataRow r = ds.Tables[0].Rows[i];
aMessage = new Message();
aMessage.mId = Convert.ToInt32(r["mid"].ToString());
aMessage.sUId = Convert.ToInt32(r["sourceUid"].ToString());
aMessage.sUName = r["sourceName"].ToString();
aMessage.releaseDateTime = r["releaseDateTime"].ToString();
aMessage.dUId = 0;
aMessage.dUName = "";
aMessage.content = r["content"].ToString();
messages[i] = aMessage;
}
}
}
catch(Exception ex)
{
}
finally
{
if(ds!=null)
ds.Dispose();
ds = null;
if(db!=null)
db.Dispose();
db = null;
}
return messages;
}
/// 获取客户端信息 根据信息ID
/// </summary>
/// <param name="mId"></param>
/// <returns></returns>
[WebMethod]
public Message[] GetCustomerMessage(int mId)
{
Message[] messages = null;
System.Data.DataSet ds = null;
DB db = null;
int messageCount = 0;
Message aMessage;
string sqlCmd = "Exec UP_GetCustomerMessageById " + mId.ToString();
try
{
db = new DB();
ds = db.GetDataSet(sqlCmd);
messageCount = ds.Tables[0].Rows.Count;
if(messageCount>0)
{
messages = new Message[1];
int i = 0;
//mid,sourceUid,releaseDateTime,content
System.Data.DataRow r = ds.Tables[0].Rows[i];
aMessage = new Message();
aMessage.mId = Convert.ToInt32(r["mid"].ToString());
aMessage.sUId = Convert.ToInt32(r["sourceUid"].ToString());
aMessage.sUName = r["sourceName"].ToString();
aMessage.releaseDateTime = r["releaseDateTime"].ToString();
aMessage.dUId = 0;
aMessage.dUName = "";
aMessage.content = r["content"].ToString();
messages[i] = aMessage;
}
}
catch(Exception ex)
{
}
finally
{
if(ds!=null)
ds.Dispose();
ds = null;
if(db!=null)
db.Dispose();
db = null;
}
return messages; /*
Message[] messages = new Message[1];
messages[0].mId = 3;
messages[0].sUId = 11;
messages[0].sUName = "客户003";
messages[0].dUId = 0;
messages[0].dUName = "";
messages[0].releaseDateTime = DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);
messages[0].content = "你好!";
return messages;
*/
}
[WebMethod]
public Customer CustomerLogin(string email)
{
DB db = null;
Customer aCustomer = new Customer();
string sqlCmd = "SELECT emp_id as id,[name] as name"
+ " FROM employee"
+ " where emp_id='"+this.Session["emp_id"].ToString()+"'";
System.Data.DataSet ds = null;
try
{
db = new DB();
ds = db.GetDataSet(sqlCmd);
if(ds.Tables[0].Rows.Count>0)
{
int i = 0;
//mid,sourceUid,releaseDateTime,content
System.Data.DataRow r = ds.Tables[0].Rows[i];
aCustomer.cId = Convert.ToInt32(r["id"].ToString());
aCustomer.name = r["name"].ToString();
}
}
catch(Exception ex)
{
}
finally
{
if(ds!=null)
ds.Dispose();
ds = null;
if(db!=null)
db.Dispose();
db = null;
}
return aCustomer;
} /*
[WebMethod]
public Message[] UpdateMessage(int uId)
{
Message[] messages = null;
System.Data.DataSet ds = null;
DB db = null;
int messageCount = 0;
Message aMessage;
string sqlCmd = "Exec UP_GetAnswerMessage " + uId.ToString();
try
{
db = new DB();
ds = db.GetDataSet(sqlCmd);
messageCount = ds.Tables[0].Rows.Count;
if(messageCount>0)
{
messages = new Message[messageCount];
for(int i = 0;i<messageCount;i++)
{
//mid,sourceUid,releaseDateTime,content
System.Data.DataRow r = ds.Tables[0].Rows[i];
aMessage = new Message();
aMessage.mId = Convert.ToInt32(r["mid"].ToString());
aMessage.sUId = Convert.ToInt32(r["sourceUid"].ToString());
aMessage.sUName = "Service"+aMessage.sUId.ToString();
aMessage.dUId = 0;
aMessage.dUName = "";
aMessage.content = r["content"].ToString();
messages[i] = aMessage;
}
}
}
catch(Exception ex)
{
}
finally
{
if(ds!=null)
ds.Dispose();
ds = null;
if(db!=null)
db.Dispose();
db = null;
}
return messages; int i =2;
//日期格式 2007/6/16 10:35:26
Message[] messages = new Message[i];
messages[0].mId = 1;
messages[0].sUId = 11;
messages[0].sUName = "客户001";
messages[0].dUId = 12;
messages[0].dUName = "LJ";
messages[0].releaseDateTime = DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);;
messages[0].content = "你好!";
messages[1].mId = 2;
messages[1].sUId = 11;
messages[1].sUName = "客户001";
messages[1].dUId = 12;
messages[1].dUName = "LJ";
messages[1].releaseDateTime = DateTime.Now.ToString().Replace("-","/");
messages[1].content = "有什么能帮到您的吗?";
return messages;
}
*/ }
}
{
DB db = null;
Customer aCustomer = new Customer();
string sqlCmd = "SELECT emp_id as id,[name] as name"
+ " FROM employee"
+ " where emp_id='"emp_id"+"'";
System.Data.DataSet ds = null;
try
{
db = new DB();
ds = db.GetDataSet(sqlCmd);
if(ds.Tables[0].Rows.Count>0)
{
int i = 0; System.Data.DataRow r = ds.Tables[0].Rows[i];
aCustomer.cId = Convert.ToInt32(r["id"].ToString());
aCustomer.name = r["name"].ToString();
}
}
catch(Exception ex)
{
}
finally
{
if(ds!=null)
ds.Dispose();
ds = null;
if(db!=null)
db.Dispose();
db = null;
}
return aCustomer;
}
这段传的值,
下面是接值.js页面
var isCanRequest = true;
var isNeedUpdate = true;
var updateTimeInit =2;
var updateTime = updateTimeInit;
var uId = "0";
var uName = "";
var intervalTimeInit = 3;
var intervalTime = intervalTimeInit;
var interval = 800;
var intervalObject = null;
var csButtonValue = "Add Message";
要该动登陆就要该这个接口