欢迎来到vincent的多人聊天室

a:link{

color:#FFF;

text-decoration:none;

}

a:hover{

color:yellow;

text-decoration:underline;

}

font{

font-size:12px;

}

body{

background-color:black;

font-size:12px;

font-family:verdana;

color:#FFF;

text-align:left;

overflow:scroll;

margin:0px;

}

#title{

font-size:20px;

font-family:verdana;

}

sub{

font-size:12px;

}

#showChats{

width:730px;

height:400px;

font-size:12px;

line-height:150%;

padding:30 0 0 20px;

word-wrap:break-word;

border-top:15px solid #FFF;

border-left:1px solid #FFF;

border-right:1px solid #FFF;

border-bottom:1px solid #FFF;

text-align:left;

}

form{

border:1px solid #FFF;

width:730px;

height:30px;

padding:5 0 5 3px;

text-align:left;

font-weight:bold;

}

#but{

width:80px;

border:1px solid #FFF;

padding:2 0 0 0px;

}

#bottom{

border:1px solid #FFF;

width:730px;

height:32px;

text-align:center;

padding:5 4 0 4px;

}

#colorBox{

float:left;

width:30px;

height:20px;

border:0;

cursor:pointer; }

#showStatus{

width:700px;

text-align:right;

font-size:12px;

height:20px;

position:relative;

top:0px;

border:0px;

padding-right:20px;

}

#showMessage{

width:700px;

text-align:right;

font-size:12px;

height:20px;

position:relative;

top:0px;

border:0px;

padding-right:20px;

}

#userList{

border:1px solid #FFF;

width:110px;

height:180px;

padding:0px;

position:absolute;

}

style="cursor:move;padding:3 0 0

0px;color:black;background-color:#FFF;height:20px;">当前在线用户列表

Welcome To The

ChatRoom!-----Design By Vincent @

2007

scrollamount="1">欢迎来到vincent的留言板!我的邮箱:yuanchentao2005@163.com

QQ:282159887  个人主页:

href="www.iyxf.cn/vincent"

target="_blank">www.iyxf.cn/vincent

用户:

--选择表情--

呵呵

郁闷

大哭

大笑

笑着

撒娇

哭泣着

说:

/>

οnclick="createColorTable()" />

chat.js

var

oForm=document.getElementsByTagName_r("form")[0];

var

fColor=""; //全局,用于保存字体颜色;

var xmlHttp;

var struserName=""; //全局用于保存当前用户名

function createXMLHttp(){

if(window.ActiveXObject)

xmlHttp=new

ActiveXObject("Microsoft.XMLHTTP");

else if(window.XMLHttpRequest)

xmlHttp=new

XMLHttprequest();

}

createXMLHttp(); //创建xmlHtttRequest对象

function callServer(strPost){ //往文件当中写入记录

xmlHttp.open("post","chat.asp?"+strPost,true);

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState!=4){

showStatus.innerText="正在发送,请稍候...";

}

else if(xmlHttp.readyState==4){

if(xmlHttp.status==200)

showStatus.innerText="";

ReadAllContents();

}

}

xmlHttp.Send(null);

}

function

callUserCount(strPost){ //统计当前用户个数

xmlHttp.open("get","userCount.asp?userName="+strPost,true);

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4){

if(xmlHttp.status==200){

showUsers.innerHTML=xmlHttp.responseText;

}

}

}

xmlHttp.Send(null);

}

function

calldeleteUser(){ //用户退出后自动删除

xmlHttp.open("get","deleteUser.asp?userName="+struserName,true);

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4){

if(xmlHttp.status==200){

showUsers.innerHTML=xmlHttp.responseText;

}

}

}

xmlHttp.Send(null);

}

function

callAllUsers(){ //登陆后记录用户;

xmlHttp.open("get","getAll.asp",true);

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4){

if(xmlHttp.status==200){

showUsers.innerHTML=xmlHttp.responseText; //显示用户列表;

setTimeout("callAllUsers()",3000);

}

}

}

xmlHttp.Send(null);

}

function

ReadAllContents(){ //

xmlHttp.open("get","getAllContents.asp",true);

xmlHttp.setRequestHeader("Charset","GB2312");

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4){

if(xmlHttp.status==200)

showChats.innerHTML=xmlHttp.responseText;

setTimeout("ReadAllContents()",3000);

}

}

xmlHttp.Send(null);

}

function

userLogin(){

struserName=prompt("您的昵称?","");

if(struserName==null||struserName=="")

struserName="游客"+Math.floor(Math.random()*1000);

oForm.elements[0].value=struserName;

showChats.innerHTML+="[系统消息:] 欢迎

color=\"yellow\"> "+struserName+" 的到来!
";

callUserCount(struserName);

}

function

createColorTable(){

var oDiv=document.getElementByIdx("bottom");

var strColor1=["33","66","99","FF","CC","DD"];

var strColor2=new Array(3);

var strColor="#";

oDiv.innerHTML="";

for(var j=0;j<24;j++){

for(var i=0;i<3;i++){

strColor2[i]=strColor1[Math.floor(Math.random()*6)];

strColor+=strColor2[i];

}

oDiv.innerHTML+="

οnclick=\"setColor(this.style.backgroundColor)\" id=\"colorBox\"

style=\"background-color:"+strColor+"\">";

strColor="#";

}

}

function setColor(tempColor){

oForm.elements[2].style.color=tempColor;

fColor=tempColor;

}

document.οnkeydοwn=sendMessage;

function

sendMessage(){

if(event.keyCode==13)

sendYes();

}

oForm.elements[3].οnclick=sendYes;

function sendYes(){

var strPost="";

var

userName=escape(oForm.elements[0].value.replace("",">").replace(/\\/g,"\\").replace(/\//g,"\\\/").replace(/\'/g,"\'").replace(/\"/g,"\""));

var userBQ=escape(oForm.elements[1].value);

var

strContent=escape(oForm.elements[2].value.replace("",">").replace(/\\/g,"\\").replace(/\//g,"\\\/").replace(/\'/g,"\'").replace(/\"/g,"\""));

var strColor=escape(fColor);

strPost="userName="+userName+"&userBQ="+userBQ+"&strContent="+strContent+"&strColor="+strColor;

callServer(strPost);

oForm.elements[2].value="";

oForm.elements[2].focus();

}

oForm.elements[4].οnclick=function(){

oForm.elements[2].value="";

oForm.elements[2].focus();

}

window.οnlοad=function(){

userLogin();

createColorTable();

callAllUsers();

ReadAllContents();

}

window.οnunlοad=function(){

calldeleteUser(); //可以在这个地方消除用户

}

function

Drag(DragElement){

var x=parseInt(DragElement.style.left);

var y=parseInt(DragElement.style.top);

var deltaX=event.clientX-x;

var deltaY=event.clientY-y;

var drag=true;

DragElement.οnmοusemοve=function(){

if(drag){

DragElement.style.left=(event.clientX-deltaX)+"px";

DragElement.style.top=(event.clientY-deltaY)+"px";

DragElement.setCapture();

}

}

DragElement.οnmοuseup=function(){

drag=false;

DragElement.releaseCapture();

}

}

chat.asp

language="JAVASCRIPT" %>

Response.Charset="GB2312"; Response.Expires =

0; Response.CacheControl = "no-cache";

var userName="";

var userBQ="";

var strcontent="";

var strColor="";

var

userName=Request.QueryString("userName"); //用户名

var

userBQ=Request.QueryString("userBQ"); //表情

var strContent=Request.QueryString("strContent"); //内容

var

strColor=Request.QueryString("strColor"); //字体颜色

var now=(new

Date()).toLocaleString(); //当前时间

var xmlDom=Server.CreateObject("MSXML2.DOMDocument");

xmlDom.async=false;

xmlDom.load(Server.Mappath("userChat.xml"));

var rootNode=xmlDom.documentElement;

var user=xmlDom.createElement("user");

var user_name=xmlDom.createElement("name");

var user_time=xmlDom.createElement("time");

var user_BQ=xmlDom.createElement("BQ");

var user_content=xmlDom.createElement("content");

var color=xmlDom.createNode("Attribute","color","");

color.text=strColor;

user_content.setAttributeNode(color);

user_name.text=userName;

user_time.text=now;

user_BQ.text=userBQ;

user_content.text=strContent;

user.appendChild(user_name);

user.appendChild(user_time);

user.appendChild(user_BQ);

user.appendChild(user_content);

if(rootNode.firstChild==null)

rootNode.appendChild(user);

else

rootNode.insertBefore(user,rootNode.firstChild);

xmlDom.save(Server.Mappath("userChat.xml"));

%>

getAllContents.asp

language="JAVASCRIPT" %>

Response.Charset="UTF-8"; Response.Expires =

0; Response.CacheControl = "no-cache";

var userName="";

var time="";

var userBQ="";

var strColor="";

var strcontent="";

var xmlDom=Server.CreateObject("MSXML2.DOMDocument");

xmlDom.async=false;

xmlDom.load(Server.Mappath("userChat.xml"));

var rootNode=xmlDom.documentElement;

var

currentRecord=rootNode.childNodes.length>14?14:rootNode.childNodes.length;

if(rootNode.firstChild!=null){

for(var i=currentRecord-1;i>=0;i--){

userName=unescape(rootNode.childNodes[i].childNodes[0].text);

//name

time=unescape(rootNode.childNodes[i].childNodes[1].text);

//time

userBQ=unescape(rootNode.childNodes[i].childNodes[2].text);

//BQ

strColor=unescape(rootNode.childNodes[i].childNodes[3].getAttribute("color"));

//color

strcontent=unescape(rootNode.childNodes[i].childNodes[3].text);

//content

Response.write("["+userName+"] "+time+" "+userBQ+"说:

color=\""+strColor+"\">"+strcontent+"
");

}

}

else{

Response.write("当前没有聊内容!
");

}

%>

userChat.xml

version="1.0" encoding="GB2312"?>

用记事本编写ajax,用记事本轻松制作ajax+xml在线聊天室相关推荐

  1. 有哪些不用编写代码就能轻松制作生成HTML5页面的工具

    个人认为现在市面上不用编写代码就能轻松制作生成 h5 页面的工具都是一些噱头,其大致都是套用现成的模板,替换里面的文字或者图片,作为一个开发者使用类似网站这些功能根本不能真正意义上达到自己想要的效果, ...

  2. php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)

    通过ajax和setInterval()函数,配合php+mysql实现一个简单的在线聊天室的功能.附带详细源码案例.这个聊天室是一个简单的聊天室,通过javascript setInterval() ...

  3. YShout一款PHP+TXT+Ajax嵌入式在线聊天室源码

    简介: YShout是一款PHP+TXT+AJAX开发嵌入式在线聊天室源码,UTF-8编码. 可以非常方便的嵌入到的你的网站中,无需数据库,采用TXT存储数据,小巧灵活,移植方便.采用AJAX技术,增 ...

  4. 使用Unity制作一个简单的聊天室

    使用控制台作为一个服务器,在Unity中开发客户端,制作一个简易的聊天室,无论哪个客户端发送消息,其他的客户端都会实时的显示出来. 服务器代码 using System; using System.C ...

  5. 转载 ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(三) 激动人心的时刻到啦,实现1v1聊天...

    ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(三) 激动人心的时刻到啦,实现1v1聊天 看起来挺简单,细节还是很多的,好,接上一篇,我们已经成功连接singalR服务器了, ...

  6. php+Ajax+Mysql 创建简单的一对一在线聊天室

    最近在学习Ajax异步刷新的时候么突然想到能不能这个技术做点什么事情,网上百度了一下,发现好多人用这个写在线聊天,自己也想试试.不过,做完之后发现这种方法写的聊天室,真的很耗资源,不过就当练手学习吧. ...

  7. ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能...

    休息了两天,还是决定把这个尾巴给收了.本篇是最后一篇,也算是草草收尾吧.今天要加上表情功能和群聊.基本上就差不多了,其他功能,读者可以自行扩展或者优化.至于我写的代码方面,自己也没去重构.好的,我们开 ...

  8. JAVA利用多线程和Socket制作GUI界面的在线聊天室

    目录 前言 功能设计 GUI画面展示 服务器端 客户端 私聊窗口 主要代码 服务器端 客户端 其它代码 打包成jar 打包成exe文件 如何让其它电脑访问聊天室? 最后 前言 最近刚好是期末,碰上Ja ...

  9. 轻松掌握Ajax.net系列教程

    1.轻松掌握Ajax.net系列教程一:部署AJAX.NET 2.轻松掌握Ajax.net系列教程二:部署Ajax Control Toolkit 3.轻松掌握Ajax.net系列教程三:使用Casc ...

最新文章

  1. 深度丨Google告诉你为什么各大机构都在争相研究AI芯片
  2. 盘点2015跨境电商:硝烟下的机遇与变革
  3. 机器视觉 · 视觉系统选型
  4. 《I'm a Mac:雄狮训练手册》——1.12 开机快捷键
  5. java四种访问权限
  6. linux应用与管理,Linux操作系统应用与管理
  7. ApacheCN 学习资源汇总 2019.1
  8. Wpf之无法添加wpf窗体
  9. git提交过滤target文件 idea_详解如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件...
  10. 考软考需要准备什么,需要买哪些学习资料?
  11. 天线方向图的基本概念
  12. 报价单和价目表制作的软件app
  13. 学堂在线数据结构上6
  14. PowerShell脚本免杀/bypass/绕过杀毒软件
  15. MATLAB在线工具,画图啥的都不用安装了,超级实用
  16. 如何遍历java对象属性
  17. Linux链接命令和搜索命令
  18. vue实现数据无缝循环滚动
  19. 物联网技术 android,基于Android技术的物联网应用开发
  20. SQL(一):关于MySQL8.0版本:用户、密码和权限的问题

热门文章

  1. 使用百度地图API来完成交大校园巴士时刻表
  2. linux重新mac,用 Linux 让旧 MacBook 重获新生
  3. 刚开始做微商如何引流 ?一开始做微商没有客源怎么办
  4. Guava1.0—— 目录
  5. 打造江西数智产业高地,百度飞桨人工智能产业赋能中心落户南昌青山湖
  6. 青铜器RDM与微软Project计划进度管理对比分析
  7. 解决Linux(ubuntu),windows双系统重装后恢复开机选单
  8. python day46
  9. 移动端名片识别SDK
  10. 谈 DevOps 自动化时,也应该考虑到 SOX 等法案