您的位置:首页 > 编程语言 > PHP开发

php+js+mysql设计的仿webQQ-<6>JS创建聊天窗口

2012-05-12 21:43 573 查看
<11>Js创建聊天窗口

先看一下效果图





所在页面的head中加入以下Js代码来定义全局变量

Js代码

<script type="text/javascript">
var count=2,t=50,l=20;
</script>


创建聊天窗口的Js代码

function createDialogDiv(obj)
{   count++;                //其中count为全局变量,用来决定层的堆叠顺序
    var dialogID="chat"+obj.id;		
	if(document.getElementById(dialogID)){          //检测对话框是否应经存在
		 alert("对话框已存在!");
		   }
	else{
	var dialogDiv=document.createElement('div');   //创建层dialogDiv
	document.body.appendChild(dialogDiv);
	dialogDiv.id=dialogID;                  //给层dialogDiv设置属性
	dialogDiv.style.width='360px';
	dialogDiv.style.height='320px';
	dialogDiv.style.background="#006633";
	dialogDiv.style.position = "absolute";
	dialogDiv.style.top=t+ "px";      //t和下文的l为全局变量,用来确定层的位置
	dialogDiv.style.left=l + "px";	
	
	var titleDiv=document.createElement('div');
	dialogDiv.appendChild(titleDiv);
	titleDiv.style.width='360px';
	titleDiv.style.height='30px';	
	titleDiv.style.color="#FFFFFF";
	
	titleDiv.onclick=function(){      //当用鼠标点击该对话框时,该对话框到最上面
		count++;
		dialogDiv.style.zIndex=count;
		}
		
	var titleTable=document.createElement("table");
	titleDiv.appendChild(titleTable);
	titleTable.style.width="360px";
	titleTable.style.height="24px";
	
	var titleTr=document.createElement("tr");
	titleTable.appendChild(titleTr);
	
	var titleTd1=document.createElement("td");
	titleTr.appendChild(titleTd1);
	titleTd1.style.width="30px";
	
	var titleTd1Img=document.createElement("img");
	titleTd1.appendChild(titleTd1Img);
	titleTd1Img.style.width="24px";
	titleTd1Img.style.height="24px";
	titleTd1Img.src="avatar/"+ obj.id +".jpg";
	
	var titleTd2=document.createElement("td");
	titleTr.appendChild(titleTd2);
	titleTd2.style.width="300px";
	titleTd2.style.align="left";
	titleTd2.innerHTML=obj.id;
	
	var titleTd3=document.createElement("td");
	titleTr.appendChild(titleTd3);
	titleTd3.style.width="20px";
	var titleTd3Img=document.createElement("img");
	titleTd3.appendChild(titleTd3Img);
	titleTd3Img.style.width="16px";
	titleTd3Img.style.height="16px";
	titleTd3Img.style.cursor="pointer";
	titleTd3Img.title="关闭";
	titleTd3Img.src="chat/close.png";
	
	titleTd3Img.onclick=function(){     //当用鼠标点击关闭的图片时,清除创建的层
		dialogDiv.parentNode.removeChild(dialogDiv);
		}
		
	var chatDivID="to"+obj.id;
	var chatDiv=document.createElement('div');
	dialogDiv.appendChild(chatDiv);
	chatDiv.id=chatDivID;
	chatDiv.style.width='350px';
	chatDiv.style.height='180px';
	chatDiv.style.margin='0 auto';
	chatDiv.style.background="#FFFFFF";
	chatDiv.style.color="black";
	chatDiv.style.overflow="auto";
	
	refreshChatDiv(obj,chatDivID);    //该js方法用来刷新聊天信息
	
	var messageDiv=document.createElement('div');
	dialogDiv.appendChild(messageDiv);
	messageDiv.style.width='350px';
	messageDiv.style.height='100px';
	messageDiv.style.margin='5px auto';
	
	var messageText=document.createElement('textarea');
	messageDiv.appendChild(messageText);
	messageTextID="text"+obj.id;
	messageText.id=messageTextID;
	messageText.style.width='345px';
	messageText.style.height='70px';
	
	var messageTable=document.createElement("table");
	messageDiv.appendChild(messageTable);
	var messageTr=document.createElement("tr");
	messageTable.appendChild(messageTr);
	var messageTd1=document.createElement("td");
	messageTd1.style.width="290px";
	messageTr.appendChild(messageTd1);

    var messageTd2=document.createElement("td");
	messageTr.appendChild(messageTd2);	
	
	var messageSpan=document.createElement('span');
	messageTd1.appendChild(messageSpan);
	messageSpan.style.color="red";	
	
	var messageButton=document.createElement("input");
    messageTd2.appendChild(messageButton);
	messageButton.type="button";
	messageButton.style.color="#FFFFFF";
	messageButton.style.background="#006633";
	messageButton.style.cursor="pointer";
	messageButton.value="发送";
	
	messageButton.onclick=function(){
		if(document.getElementById(messageTextID).value==""){
			messageSpan.innerHTML="不能发送空消息!";
			}
		else{
			messageSpan.innerHTML="";
			var text=document.getElementById(messageTextID).value;
			sendMessage(obj,chatDivID,text);
			document.getElementById(messageTextID).value="";
			}	
		}
	
	var h = document.documentElement.clientHeight - 340;//求浏览器的可见高度
	if(t<h){
		t=t+35;l=l+35;
		}
	else{
		t=60;
		l=50;
		}
	
 }
dialogDiv.style.zIndex=count;
}

欢迎大家拍砖!(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: