本文介紹了在線WEBQQ的一個實現方法,主要包括兩部分,第一部分就是WEB QQ的具體界面,第二部分就是用來XMLHTTP請求的ASP程序。
refresh.htm
=========
<HTML>
<HEAD>
<title>在線QQ</title>
<link rel="stylesheet" type="text/css" href="forum.css">
</HEAD>
<BODY onload=online() scroll=no topmargin="0" leftmargin="0" style="background-color: #8482C6; color: #FFFFFF; border: 2 solid #FFFFFF; padding: 0">
<marquee><font color=black>如果關閉此窗口將失去在線QQ功能!</font></marquee>
<script language="vbscript">
Function bytes2BSTR(vIn)
strReturn=""
For i=1 To LenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
If ThisCharCode<&H80 Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
End If
Next
bytes2BSTR=strReturn
End Function
</script>
<!--漢字轉換函數結束 -->
<script language="javascript">
var lengt=0;
<!--消除右鍵功能-->
function no(){
alert("不支持右鍵!");
self.event.returnValue=false;
}
<!--彈出QQ對話框,見后面-->
function sqq(uid,id){
window.open("sqq.asp?id="+id+"&uid="+uid,"_blank","width=400,height=180");
}
<!--關鍵的函數,用于顯示在線的會員-->
function online(){
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("post","online.asp",false);
xmlhttp.send();
var xmldom=new ActiveXObject("Microsoft.XMLDOM");
xmldom.async=false;
body=bytes2BSTR(xmlhttp.responseBody);
xmldom.loadXML(body);
if(xmldom.parseError.errorCode!=0){
window.open("refresh2.asp","_self");<!--為了防止有些用戶不支持xml,所以用了一個備用的asp版的-->
return
}
else{
var uid=xmldom.documentElement.selectNodes("uid");
var id=xmldom.documentElement.selectNodes("id");
var sex=xmldom.documentElement.selectNodes("sex");
var xx="";
lengt=uid.length;
for(var i=0;i<lengt;i++){
var im="";
if(id(0).text!="k") im="<img src=../jy/face/1.gif width=12 height=12>";
xx=xx+im+"<font color=red onclick=sqq('"+uid(i).text+"','"+id(i).text+"') style='cursor:hand' title='"+sex(i).text+"'>"+uid(i).text+"</font><br>";
}
disonline.innerHTML=xx;
window.setTimeout("online()",3000);
}
}
</script>
<!--這個"resfresh4.asp"是用于當有自己的信息時彈出QQ對話框用的-->
<iframe src="refresh4.asp" width=0 height=2 marginwidth=0 marginheight=0 frameborder=0>
</iframe>
<input type=button value=" 在線網友:" class=ddyinput2>
<div id=disonline style="height:230;overflow: auto"></div><br>
<!--這里用到了scriptlet技術,你也可以試一下,和include差不多-->
<OBJECT data=i11.htm height=14 style="HEIGHT: 93px; WIDTH: 770px"
type=text/x-scriptlet width=14 VIEWASTEXT></OBJECT>
</BODY>
</HTML>
好了,第一部分就到這里了!!
用于處理xmlhttp請求的asp程序,看看時不是很簡單?。。??
=====
<%on error resume next
Response.ContentType="text/xml"
if Request.ServerVariables("REQUEST_METHOD")="POST" then
set req=Server.CreateObject("Microsoft.XMLDOM")
req.async=false
req.load(Request)
set conn=server.CreateObject("adodb.connection")
conn.Open "odbc","uid","password"
sql="select uid,id,sex from uidinfo order by id desc"
set rs=server.CreateObject("adodb.recordset")
rs.Open sql,conn
Response.Write "<?xml version=""1.0"" ?>"
Response.Write "<mess>"
if not rs.EOF then
do while not rs.EOF
Response.Write "<id>"&trim(rs("id"))&"</id><uid>"&trim(rs("uid"))&"</uid><sex>"&trim(rs("sex"))&"</sex>"
rs.MoveNext
loop
else
Response.Write "<id>k</id><uid></uid><sex></sex>"
end if
Response.Write "</mess>"
if rs.State=1 then rs.Close
set rs=nothing
conn.Close
set conn=nothing
set req=nothing
end if
%>
新聞熱點
疑難解答